キーストアの作成と抽出を自動化したいのですが、私が直面している問題は、「|' 記号または同様の解決策。
//Original Command
var command='keytool -exportcert -storepass mypass -keypass mypass
-alias myalias -keystore mykey.keystore | openssl sha1 -binary | openssl base64';
//Arguments for the spawn
var keyArgs = [
'-exportcert',
'-storepass','mypass',
'-keypass','mypass',
'-alias','myalias',
'-keystore',"myjey.keystore",
'openssl','sha1',
'-binary',
'openssl','base64',
];
exec('keytool',keyArgs,{cwd:appCreateFolder+"/"+opt.id+"/Certificates"},function(e){
console.log(chalk.cyan('Key created'));
})
ベストアンサー1
Node.js v6からは、シェルを使用してコマンドを実行するメソッドshell
にオプションを指定できるようになり、spawn
spawn メソッドを使用したチェーンコマンド。
たとえば次のようになります:
var spawn = require('child_process').spawn;
var child = spawn('ls && ls && ls', {
shell: true
});
child.stderr.on('data', function (data) {
console.error("STDERR:", data.toString());
});
child.stdout.on('data', function (data) {
console.log("STDOUT:", data.toString());
});
child.on('exit', function (exitCode) {
console.log("Child exited with code: " + exitCode);
});
node.js バージョン 6 未満ではエラーが発生します。
Error: spawn ls && ls && ls ENOENT
しかし、バージョン 6 以降では期待どおりの結果が返されます。
node app.js
STDOUT: app.js
STDOUT: app.js
app.js
Child exited with code: 0