From 16adff0c7b67c69a2133b6aac375365c5f2bdbf7 Mon Sep 17 00:00:00 2001 From: dcodeIO Date: Fri, 24 Mar 2017 16:28:40 +0100 Subject: [PATCH] CLI: Fixed handling of stdout if callback is specified, see #724 --- cli/pbjs.js | 12 ++++++++---- cli/pbts.js | 15 +++++++-------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/cli/pbjs.js b/cli/pbjs.js index 1af431364..b062125bd 100644 --- a/cli/pbjs.js +++ b/cli/pbjs.js @@ -275,15 +275,19 @@ exports.main = function main(args, callback) { return callback(err); throw err; } - if (output !== "") { + try { if (argv.out) fs.writeFileSync(argv.out, output, { encoding: "utf8" }); else if (!callback) process.stdout.write(output, "utf8"); + return callback + ? callback(null, output) + : undefined; + } catch (err) { + if (callback) + return callback(err); + throw err; } - return callback - ? callback(null, output) - : undefined; }); } diff --git a/cli/pbts.js b/cli/pbts.js index 4d373bd2c..d74404ed5 100644 --- a/cli/pbts.js +++ b/cli/pbts.js @@ -140,16 +140,15 @@ exports.main = function(args, callback) { try { if (argv.out) - fs.writeFileSync(argv.out, output); - else + fs.writeFileSync(argv.out, output, { encoding: "utf8" }); + else if (!callback) process.stdout.write(output, "utf8"); - if (callback) - callback(null); // eslint-disable-line callback-return + return callback + ? callback(null, output) + : undefined; } catch (err) { - if (callback) { - callback(err); - return; - } + if (callback) + return callback(err); throw err; } });