diff options
| author | Michael Williamson <mike@zwobble.org> | 2014-03-18 15:03:21 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2014-03-18 15:03:21 +0000 |
| commit | afc9d62c146bdeec475c08ee87875271a8af8d93 (patch) | |
| tree | bcaf14676cd5dacbfdd60d78dbd58203b3b9c882 | |
| parent | 1c815bea595037b9255bf1f11b4b3f90dbe7c1c2 (diff) | |
Add support for writing to output file in CLI
| -rw-r--r-- | lib/main.js | 6 | ||||
| -rw-r--r-- | package.json | 3 | ||||
| -rw-r--r-- | 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, "<p>Walking on imported air</p>") }); }); + + 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), "<p>Walking on imported air</p>"); + }); + }); + }); }); function runMammoth() { @@ -29,3 +44,7 @@ function runMammoth() { return deferred.promise; } + +function createTempDir() { + return promises.nfcall(temp.mkdir, null); +} |
