summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2014-03-18 15:03:21 +0000
committerMichael Williamson <mike@zwobble.org>2014-03-18 15:03:21 +0000
commitafc9d62c146bdeec475c08ee87875271a8af8d93 (patch)
treebcaf14676cd5dacbfdd60d78dbd58203b3b9c882
parent1c815bea595037b9255bf1f11b4b3f90dbe7c1c2 (diff)
Add support for writing to output file in CLI
-rw-r--r--lib/main.js6
-rw-r--r--package.json3
-rw-r--r--tests/main.tests.js19
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);
+}