From afc9d62c146bdeec475c08ee87875271a8af8d93 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 18 Mar 2014 15:03:21 +0000 Subject: Add support for writing to output file in CLI --- lib/main.js | 6 +++++- package.json | 3 ++- tests/main.tests.js | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/lib/main.js b/lib/main.js index 39ebf43..c68183f 100644 --- a/lib/main.js +++ b/lib/main.js @@ -1,3 +1,5 @@ +var fs = require("fs"); + var optimist = require("optimist"); var mammoth = require("./"); @@ -6,7 +8,9 @@ var argv = optimist.argv; mammoth.convertToHtml({path: argv._[0]}) .then(function(result) { - process.stdout.write(result.value); + var outputStream = argv._[1] ? fs.createWriteStream(argv._[1]) : process.stdout; + + outputStream.write(result.value); }) .done(); diff --git a/package.json b/package.json index a05c17c..dc3a427 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,8 @@ "browserify": "~3.18.0", "license-sniffer": "~0.1.0", "duck": "~0.1.11", - "uglify-js": "~2.4.8" + "uglify-js": "~2.4.8", + "temp": "~0.7.0" }, "browser": { "./lib/unzip.js": "./browser/unzip.js" diff --git a/tests/main.tests.js b/tests/main.tests.js index 1093027..a97a049 100644 --- a/tests/main.tests.js +++ b/tests/main.tests.js @@ -1,5 +1,9 @@ var assert = require("assert"); var child_process = require("child_process"); +var path = require("path"); +var fs = require("fs"); + +var temp = require('temp').track(); var promises = require("../lib/promises"); var test = require("./testing").test; @@ -12,6 +16,17 @@ describe("CLI", function() { assert.equal(result.output, "

Walking on imported air

") }); }); + + test("HTML is written to file if output file is set", function() { + return createTempDir().then(function(tempDir) { + var outputPath = path.join(tempDir, "output.html"); + return runMammoth(testPath("single-paragraph.docx"), outputPath).then(function(result) { + assert.equal(result.stderrOutput, "") + assert.equal(result.output, "") + assert.equal(fs.readFileSync(outputPath), "

Walking on imported air

"); + }); + }); + }); }); function runMammoth() { @@ -29,3 +44,7 @@ function runMammoth() { return deferred.promise; } + +function createTempDir() { + return promises.nfcall(temp.mkdir, null); +} -- cgit v1.2.3