在documentation之后,我能够设置grunt任务并成功构建。
现在,我需要具有preInstall和postInstall脚本,但是找不到有关如何执行此操作的任何文档。
这是我的设置:
rpm: {
options: {
// Task-specific options go here.
name: 'cdrapi',
version: '1.0.0',
release: false,
homepage: 'www.website.com',
summary: 'api package',
license: '??',
distribution: 'CentOS 6.x',
requires: ['nodejs'],
preInstall: 'echo "You are in the pre install section"'
},
files: {
dest: '/opt/cdr/api/',
src: ['**/*', '!**/*.map', '!**/**/*.ts', '!**/bdd_tests/**'],
cwd: 'build',
expand: true
}
}
上面的preInstall标记不执行任何操作,甚至不会反映在rpm规范文件中。
最佳答案
看起来preInstall
和postInstall
的参数应该是文件而不是嵌入式脚本。
参见代码here:
src += readScriptlet('\n%pre', options.preInstall);
src += readScriptlet('\n%post', options.postInstall);
src += readScriptlet('\n%preun', options.preUninstall);
src += readScriptlet('\n%postun', options.postUninstall);
和readScriptlet函数:
function readScriptlet(label, scriptFile) {
var src = '';
if (scriptFile) {
var options = {
encoding: scriptFile.encoding || 'utf8'
};
var data = fs.readFileSync(scriptFile.src, options);
src += label + '\n';
src += data.trim() + '\n\n';
}
return src;
}