diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-12-28 11:47:38 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-12-28 11:47:38 +0000 |
| commit | b077df1b5a6736e250c1e054924e7cc0f1d0f0c3 (patch) | |
| tree | eddd78c61bcedb07263a63495815c6b8f88abb1d | |
| parent | 53f620f1dc69b03b358f5eb4e20f0a69eba467c4 (diff) | |
Replace nomnom with argparse
| -rwxr-xr-x | bin/mammoth | 61 | ||||
| -rw-r--r-- | lib/main.js | 6 | ||||
| -rw-r--r-- | package.json | 2 |
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" |
