summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-12-28 11:47:38 +0000
committerMichael Williamson <mike@zwobble.org>2015-12-28 11:47:38 +0000
commitb077df1b5a6736e250c1e054924e7cc0f1d0f0c3 (patch)
treeeddd78c61bcedb07263a63495815c6b8f88abb1d
parent53f620f1dc69b03b358f5eb4e20f0a69eba467c4 (diff)
Replace nomnom with argparse
-rwxr-xr-xbin/mammoth61
-rw-r--r--lib/main.js6
-rw-r--r--package.json2
3 files changed, 38 insertions, 31 deletions
diff --git a/bin/mammoth b/bin/mammoth
index 72d2af0..6fddaeb 100755
--- a/bin/mammoth
+++ b/bin/mammoth
@@ -1,31 +1,38 @@
#!/usr/bin/env node
-var args = require("nomnom")
- .option("docx-path", {
- position: 0,
- required: true,
- type: "string",
- help: "Path to the .docx file to convert."
- })
- .option("output-path", {
- position: 1,
- type: "string",
- help: "Output path for the generated document. Images will be stored inline in the output document. Output is written to stdout if not set."
- })
- .option("output-dir", {
- type: "string",
- help: "Output directory for generated HTML and images. Images will be stored in separate files. Takes precedence over output-path."
- })
- .option("output-format", {
- default: "html",
- choices: ["html", "markdown"],
- help: "Output format."
- })
- .option("style-map", {
- type: "string",
- help: "File containg a style map."
- })
- .parse();
+var ArgumentParser = require("argparse").ArgumentParser;
var main = require("../lib/main");
-main(args);
+var parser = new ArgumentParser({
+ addHelp: true
+});
+
+parser.addArgument(["docx-path"], {
+ type: "string",
+ help: "Path to the .docx file to convert."
+});
+
+var outputGroup = parser.addMutuallyExclusiveGroup();
+outputGroup.addArgument(["output-path"], {
+ type: "string",
+ nargs: "?",
+ help: "Output path for the generated document. Images will be stored inline in the output document. Output is written to stdout if not set."
+});
+outputGroup.addArgument(["--output-dir"], {
+ type: "string",
+ help: "Output directory for generated HTML and images. Images will be stored in separate files. Takes precedence over output-path."
+});
+
+parser.addArgument(["--output-format"], {
+ defaultValue: "html",
+ choices: ["html", "markdown"],
+ help: "Output format."
+});
+
+parser.addArgument(["--style-map"], {
+ type: "string",
+ help: "File containg a style map."
+});
+
+
+main(parser.parseArgs());
diff --git a/lib/main.js b/lib/main.js
index b472d06..8be5a3f 100644
--- a/lib/main.js
+++ b/lib/main.js
@@ -8,9 +8,9 @@ var images = require("./images");
function main(argv) {
var docxPath = argv["docx-path"];
var outputPath = argv["output-path"];
- var outputDir = argv["output-dir"];
- var outputFormat = argv["output-format"];
- var styleMapPath = argv["style-map"];
+ var outputDir = argv.output_dir;
+ var outputFormat = argv.output_format;
+ var styleMapPath = argv.style_map;
readStyleMap(styleMapPath).then(function(styleMap) {
var options = {
diff --git a/package.json b/package.json
index 72fdcb2..54d556a 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,7 @@
"underscore": "~1.6.0",
"lop": "~0.3.0",
"async": "~0.2.6",
- "nomnom": "~1.6.2",
+ "argparse": "~1.0.3",
"jszip": "~2.5.0",
"xmlbuilder": "~2.6.4",
"path-is-absolute": "^1.0.0"