traceur-rb 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/README.md +2 -2
- data/lib/js/compile.js +7 -15
- data/lib/traceur.rb +2 -1
- data/lib/traceur/compilation_error.rb +27 -0
- data/lib/traceur/compiler.rb +4 -1
- data/lib/traceur/configuration.rb +1 -1
- data/lib/traceur/node/runner.rb +1 -1
- data/lib/traceur/version.rb +1 -1
- data/spec/examples/syntax_error.js +3 -0
- data/spec/integration/examples_spec.rb +6 -0
- data/vendor/node_modules/traceur/LICENSE +202 -0
- data/vendor/node_modules/traceur/README.md +5 -5
- data/vendor/node_modules/traceur/bin/traceur-runtime.js +1392 -623
- data/vendor/node_modules/traceur/bin/traceur.js +24749 -17990
- data/vendor/node_modules/traceur/node_modules/.bin/semver +2 -2
- data/vendor/node_modules/traceur/node_modules/commander/History.md +222 -0
- data/vendor/node_modules/traceur/node_modules/commander/Readme.md +127 -35
- data/vendor/node_modules/traceur/node_modules/commander/index.js +261 -93
- data/vendor/node_modules/traceur/node_modules/commander/package.json +41 -9
- data/vendor/node_modules/traceur/node_modules/glob/LICENSE +15 -0
- data/vendor/node_modules/traceur/node_modules/glob/README.md +357 -0
- data/vendor/node_modules/traceur/node_modules/glob/common.js +177 -0
- data/vendor/node_modules/traceur/node_modules/glob/glob.js +649 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/.eslintrc +17 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/LICENSE +15 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/README.md +37 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/inflight.js +44 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/node_modules/wrappy/LICENSE +15 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/node_modules/wrappy/README.md +36 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json +34 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/node_modules/wrappy/test/basic.js +51 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/node_modules/wrappy/wrappy.js +33 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/package.json +61 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/test.js +97 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/LICENSE +16 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/README.md +42 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/inherits.js +1 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/inherits_browser.js +23 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/package.json +33 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/test.js +25 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/.npmignore +1 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/.travis.yml +4 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/LICENSE +23 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/README.md +216 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/benchmark.js +15 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/browser.js +1181 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/minimatch.js +845 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +2 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.travis.yml +3 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md +121 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +8 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +191 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +2 -0
- data/vendor/node_modules/traceur/node_modules/{q-io/node_modules/collections → glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match}/.travis.yml +0 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +6 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +80 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +5 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +38 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +73 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +56 -0
- data/vendor/node_modules/traceur/node_modules/{q-io/node_modules/url2 → glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map}/.travis.yml +1 -1
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE +18 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +62 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +6 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +13 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +83 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +39 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +75 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js +32 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt +1075 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt +182 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js +9 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js +10 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh +24 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js +15 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js +16 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js +10 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js +13 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js +7 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js +50 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/package.json +60 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/test/basic.js +399 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/test/brace-expand.js +45 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/test/defaults.js +274 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/LICENSE +27 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/README.md +51 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/node_modules/wrappy/LICENSE +15 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/node_modules/wrappy/README.md +36 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/node_modules/wrappy/package.json +34 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/node_modules/wrappy/test/basic.js +51 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js +33 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/once.js +21 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/package.json +42 -0
- data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/test/once.js +23 -0
- data/vendor/node_modules/traceur/node_modules/glob/package.json +72 -0
- data/vendor/node_modules/traceur/node_modules/glob/sync.js +409 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/.release.json +17 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/CHANGELOG.md +165 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/LICENSE +19 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/README.md +364 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/dist/rsvp.js +1671 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/dist/rsvp.min.js +9 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp.js +66 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp.umd.js +50 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/-internal.js +265 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/all-settled.js +71 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/all.js +15 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/asap.js +109 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/config.js +28 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/defer.js +45 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/enumerator.js +125 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/events.js +201 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/filter.js +120 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/hash-settled.js +124 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/hash.js +94 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/instrument.js +41 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/map.js +99 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/node.js +281 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise-hash.js +51 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise.js +496 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise/all.js +52 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise/race.js +105 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise/reject.js +47 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise/resolve.js +49 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/race.js +15 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/reject.js +16 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/resolve.js +17 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/rethrow.js +46 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/utils.js +39 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/package.json +100 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/README.md +9 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/bower.json +22 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/composer.json +18 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/package.json +52 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/rsvp.amd.js +1607 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/rsvp.js +1566 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/rsvp.min.js +26 -0
- data/vendor/node_modules/traceur/node_modules/rsvp/vertx.js +1 -0
- data/vendor/node_modules/traceur/node_modules/semver/bin/semver +2 -2
- data/vendor/node_modules/traceur/node_modules/semver/package.json +4 -3
- data/vendor/node_modules/traceur/node_modules/semver/semver.browser.js +7 -0
- data/vendor/node_modules/traceur/node_modules/semver/semver.browser.js.gz +0 -0
- data/vendor/node_modules/traceur/node_modules/semver/semver.js +7 -0
- data/vendor/node_modules/traceur/node_modules/semver/semver.min.js +1 -1
- data/vendor/node_modules/traceur/node_modules/semver/semver.min.js.gz +0 -0
- data/vendor/node_modules/traceur/node_modules/semver/test/index.js +8 -4
- data/vendor/node_modules/traceur/node_modules/semver/test/ltr.js +2 -1
- data/vendor/node_modules/traceur/node_modules/source-map-support/.npmignore +1 -0
- data/vendor/node_modules/traceur/node_modules/{q-io/node_modules/mime/LICENSE → source-map-support/LICENSE.md} +7 -5
- data/vendor/node_modules/traceur/node_modules/source-map-support/README.md +165 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/browser-source-map-support.js +89 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/index.html +6 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/require.js +36 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/script.coffee +13 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/script.js +24 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/script.map +10 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/browser-source-map-support.js +89 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/browser-test/index.html +6 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/browser-test/script.coffee +12 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/browser-test/script.js +25 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/browser-test/script.map +10 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/build.js +69 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/header-test/index.html +6 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/header-test/script.coffee +12 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/header-test/script.js +25 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/header-test/script.map +10 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/header-test/server.js +45 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/.npmignore +2 -0
- data/vendor/node_modules/traceur/node_modules/{q-io → source-map-support/node_modules/source-map}/.travis.yml +1 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/CHANGELOG.md +121 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/LICENSE +28 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/Makefile.dryice.js +166 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/README.md +434 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/assert-shim.js +56 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/mini-require.js +152 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/prefix-source-map.jsm +20 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/prefix-utils.jsm +18 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/suffix-browser.js +8 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/suffix-source-map.jsm +6 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/suffix-utils.jsm +21 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/test-prefix.js +8 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/test-suffix.js +3 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map.js +8 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/array-set.js +97 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/base64.js +42 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/binary-search.js +81 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/source-map-consumer.js +478 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/source-map-generator.js +380 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/source-node.js +371 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/util.js +205 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/node_modules/amdefine/README.md +171 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/node_modules/amdefine/package.json +37 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/package.json +142 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/run-tests.js +62 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-api.js +26 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-array-set.js +104 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-base64.js +35 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-source-map-consumer.js +451 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-source-map-generator.js +417 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-source-node.js +365 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/util.js +161 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/package.json +52 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/source-map-support.js +381 -0
- data/vendor/node_modules/traceur/node_modules/source-map-support/test.js +359 -0
- data/vendor/node_modules/traceur/package.json +234 -20
- data/vendor/node_modules/traceur/src/node/NodeCompiler.js +78 -0
- data/vendor/node_modules/traceur/src/node/System.js +32 -5
- data/vendor/node_modules/traceur/src/node/api.js +28 -93
- data/vendor/node_modules/traceur/src/node/command.js +84 -19
- data/vendor/node_modules/traceur/src/node/compileAllJsFilesInDir.js +40 -0
- data/vendor/node_modules/traceur/src/node/interpreter.js +11 -8
- data/vendor/node_modules/traceur/src/node/recursiveModuleCompile.js +171 -0
- data/vendor/node_modules/traceur/src/node/require.js +7 -21
- data/vendor/node_modules/traceur/src/node/to-amd-compiler.js +2 -7
- data/vendor/node_modules/traceur/src/node/to-closure-compiler.js +28 -0
- data/vendor/node_modules/traceur/src/node/to-commonjs-compiler.js +3 -7
- data/vendor/node_modules/traceur/src/node/traceur.js +1 -1
- metadata +196 -190
- data/vendor/node_modules/traceur/node_modules/q-io/.npmignore +0 -1
- data/vendor/node_modules/traceur/node_modules/q-io/CHANGES.md +0 -122
- data/vendor/node_modules/traceur/node_modules/q-io/LICENSE +0 -19
- data/vendor/node_modules/traceur/node_modules/q-io/README.md +0 -928
- data/vendor/node_modules/traceur/node_modules/q-io/buffer-stream.js +0 -59
- data/vendor/node_modules/traceur/node_modules/q-io/coverage-report.js +0 -44
- data/vendor/node_modules/traceur/node_modules/q-io/deprecate.js +0 -51
- data/vendor/node_modules/traceur/node_modules/q-io/fs-boot.js +0 -307
- data/vendor/node_modules/traceur/node_modules/q-io/fs-common.js +0 -499
- data/vendor/node_modules/traceur/node_modules/q-io/fs-mock.js +0 -547
- data/vendor/node_modules/traceur/node_modules/q-io/fs-root.js +0 -105
- data/vendor/node_modules/traceur/node_modules/q-io/fs.js +0 -355
- data/vendor/node_modules/traceur/node_modules/q-io/fs2http.js +0 -65
- data/vendor/node_modules/traceur/node_modules/q-io/http-apps.js +0 -152
- data/vendor/node_modules/traceur/node_modules/q-io/http-apps/chain.js +0 -24
- data/vendor/node_modules/traceur/node_modules/q-io/http-apps/content.js +0 -93
- data/vendor/node_modules/traceur/node_modules/q-io/http-apps/cookie.js +0 -154
- data/vendor/node_modules/traceur/node_modules/q-io/http-apps/decorators.js +0 -178
- data/vendor/node_modules/traceur/node_modules/q-io/http-apps/fs.js +0 -417
- data/vendor/node_modules/traceur/node_modules/q-io/http-apps/html.js +0 -58
- data/vendor/node_modules/traceur/node_modules/q-io/http-apps/json.js +0 -78
- data/vendor/node_modules/traceur/node_modules/q-io/http-apps/negotiate.js +0 -120
- data/vendor/node_modules/traceur/node_modules/q-io/http-apps/proxy.js +0 -27
- data/vendor/node_modules/traceur/node_modules/q-io/http-apps/redirect.js +0 -209
- data/vendor/node_modules/traceur/node_modules/q-io/http-apps/route.js +0 -125
- data/vendor/node_modules/traceur/node_modules/q-io/http-apps/status.js +0 -175
- data/vendor/node_modules/traceur/node_modules/q-io/http-cookie.js +0 -75
- data/vendor/node_modules/traceur/node_modules/q-io/http.js +0 -378
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/.npmignore +0 -11
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/CHANGES.md +0 -78
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/LICENSE.md +0 -21
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/README.md +0 -1285
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/collections.js +0 -22
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/dict.js +0 -142
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/fast-map.js +0 -57
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/fast-set.js +0 -183
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-collection.js +0 -261
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-map.js +0 -186
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-order.js +0 -55
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-set.js +0 -59
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/heap.js +0 -236
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/iterator.js +0 -371
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/list.js +0 -435
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/array-changes.js +0 -247
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/map-changes.js +0 -147
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/property-changes.js +0 -448
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/range-changes.js +0 -139
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/lru-map.js +0 -79
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/lru-set.js +0 -142
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/map.js +0 -60
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/multi-map.js +0 -41
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/package.json +0 -12
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/sync +0 -7
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/sync.patch +0 -48
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/weak-map.js +0 -590
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/package.json +0 -49
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/set.js +0 -173
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-array.js +0 -274
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-function.js +0 -59
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-object.js +0 -538
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-regexp.js +0 -14
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim.js +0 -6
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-array-map.js +0 -49
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-array-set.js +0 -51
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-array.js +0 -269
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-map.js +0 -61
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-set.js +0 -736
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/tree-log.js +0 -40
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/weak-map.js +0 -1
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/README.md +0 -66
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/mime.js +0 -114
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/package.json +0 -35
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/test.js +0 -84
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/types/mime.types +0 -1588
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/types/node.types +0 -77
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/CHANGES +0 -15
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/LICENSE +0 -19
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/README +0 -96
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/lib/mimeparse.js +0 -166
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/package.json +0 -43
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/CONTRIBUTING.md +0 -40
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/LICENSE +0 -19
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/README.md +0 -813
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/benchmark/compare-with-callbacks.js +0 -71
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/benchmark/scenarios.js +0 -36
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/package.json +0 -93
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/q.js +0 -1937
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/queue.js +0 -35
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/.gitmodules +0 -6
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/History.md +0 -36
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/Makefile +0 -7
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/Readme.md +0 -38
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/benchmark.js +0 -32
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/examples.js +0 -39
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/index.js +0 -2
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/lib/querystring.js +0 -123
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/package.json +0 -19
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/.gitmodules +0 -3
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/.npmignore +0 -3
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/History.md +0 -128
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/Makefile +0 -53
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/Readme.md +0 -61
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/bin/expresso +0 -856
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/api.html +0 -1080
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/index.html +0 -377
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/index.md +0 -290
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/layout/foot.html +0 -3
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/layout/head.html +0 -42
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/lib/bar.js +0 -4
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/lib/foo.js +0 -16
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/package.json +0 -12
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/assert.test.js +0 -91
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/async.test.js +0 -12
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/bar.test.js +0 -13
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/foo.test.js +0 -14
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/http.test.js +0 -146
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/serial/async.test.js +0 -39
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/serial/http.test.js +0 -48
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/.gitmodules +0 -3
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/History.md +0 -22
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/Makefile +0 -6
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/Readme.md +0 -248
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/examples/runner.js +0 -53
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/index.js +0 -2
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/lib/eql.js +0 -91
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/lib/should.js +0 -548
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/package.json +0 -8
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/test/should.test.js +0 -358
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/test/querystring.test.js +0 -133
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/.npmignore +0 -3
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/LICENSE.md +0 -20
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/README.md +0 -33
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/package.json +0 -37
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/test/url2-spec.js +0 -125
- data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/url2.js +0 -151
- data/vendor/node_modules/traceur/node_modules/q-io/package.json +0 -51
- data/vendor/node_modules/traceur/node_modules/q-io/reader.js +0 -133
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/boot-directory-spec.js +0 -47
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/contains-spec.js +0 -11
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/fixtures/hello.txt +0 -1
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/issues/1-spec.js +0 -33
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/make-tree-spec.js +0 -92
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/append-spec.js +0 -41
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/copy-tree-spec.js +0 -57
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/fixture/hello.txt +0 -1
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/link-spec.js +0 -70
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/make-tree-spec.js +0 -109
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/merge-spec.js +0 -67
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/move-spec.js +0 -219
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/object-spec.js +0 -20
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/range-spec.js +0 -26
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/read-spec.js +0 -40
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/remove-directory-spec.js +0 -37
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/remove-tree-spec.js +0 -39
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/root-spec.js +0 -32
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/stat-spec.js +0 -26
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/symbolic-link-spec.js +0 -86
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/working-directory-spec.js +0 -31
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/write-spec.js +0 -73
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/range-spec.js +0 -23
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/range-spec.txt +0 -1
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/read-spec.js +0 -22
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/relative-spec.js +0 -25
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/reroot-spec.js +0 -45
- data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/write-spec.js +0 -38
- data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/cookie-spec.js +0 -52
- data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/directory-list-spec.js +0 -86
- data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/01234.txt +0 -1
- data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/1234.txt +0 -1
- data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/5678.txt +0 -0
- data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/9012/3456.txt +0 -0
- data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/hosts-spec.js +0 -49
- data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/interpret-range-spec.js +0 -47
- data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/partial-range-spec.js +0 -186
- data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/proxy-spec.js +0 -82
- data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/symbolic-link-spec.js +0 -110
- data/vendor/node_modules/traceur/node_modules/q-io/spec/http/agent-spec.js +0 -96
- data/vendor/node_modules/traceur/node_modules/q-io/spec/http/basic-spec.js +0 -96
- data/vendor/node_modules/traceur/node_modules/q-io/spec/lib/jasmine-promise.js +0 -42
- data/vendor/node_modules/traceur/node_modules/q-io/writer.js +0 -111
- data/vendor/node_modules/traceur/src/node/compile-single-file.js +0 -69
- data/vendor/node_modules/traceur/src/node/compiler.js +0 -116
- data/vendor/node_modules/traceur/src/node/inline-module.js +0 -149
|
@@ -107,8 +107,8 @@ function help () {
|
|
|
107
107
|
,""
|
|
108
108
|
,"-i --increment [<level>]"
|
|
109
109
|
," Increment a version by the specified level. Level can"
|
|
110
|
-
," be one of: major, minor, patch,
|
|
111
|
-
," Default level is 'patch'."
|
|
110
|
+
," be one of: major, minor, patch, premajor, preminor,"
|
|
111
|
+
," prepatch, or prerelease. Default level is 'patch'."
|
|
112
112
|
," Only one version may be specified."
|
|
113
113
|
,""
|
|
114
114
|
,"-l --loose"
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
2.6.0 / 2014-12-30
|
|
2
|
+
==================
|
|
3
|
+
|
|
4
|
+
* added `Command#allowUnknownOption` method. Close #138 #318 @doozr @zhiyelee
|
|
5
|
+
* Add application description to the help msg. Close #112 @dalssoft
|
|
6
|
+
|
|
7
|
+
2.5.1 / 2014-12-15
|
|
8
|
+
==================
|
|
9
|
+
|
|
10
|
+
* fixed two bugs incurred by variadic arguments. Close #291 @Quentin01 #302 @zhiyelee
|
|
11
|
+
|
|
12
|
+
2.5.0 / 2014-10-24
|
|
13
|
+
==================
|
|
14
|
+
|
|
15
|
+
* add support for variadic arguments. Closes #277 @whitlockjc
|
|
16
|
+
|
|
17
|
+
2.4.0 / 2014-10-17
|
|
18
|
+
==================
|
|
19
|
+
|
|
20
|
+
* fixed a bug on executing the coercion function of subcommands option. Closes #270
|
|
21
|
+
* added `Command.prototype.name` to retrieve command name. Closes #264 #266 @tonylukasavage
|
|
22
|
+
* added `Command.prototype.opts` to retrieve all the options as a simple object of key-value pairs. Closes #262 @tonylukasavage
|
|
23
|
+
* fixed a bug on subcommand name. Closes #248 @jonathandelgado
|
|
24
|
+
* fixed function normalize doesn’t honor option terminator. Closes #216 @abbr
|
|
25
|
+
|
|
26
|
+
2.3.0 / 2014-07-16
|
|
27
|
+
==================
|
|
28
|
+
|
|
29
|
+
* add command alias'. Closes PR #210
|
|
30
|
+
* fix: Typos. Closes #99
|
|
31
|
+
* fix: Unused fs module. Closes #217
|
|
32
|
+
|
|
33
|
+
2.2.0 / 2014-03-29
|
|
34
|
+
==================
|
|
35
|
+
|
|
36
|
+
* add passing of previous option value
|
|
37
|
+
* fix: support subcommands on windows. Closes #142
|
|
38
|
+
* Now the defaultValue passed as the second argument of the coercion function.
|
|
39
|
+
|
|
40
|
+
2.1.0 / 2013-11-21
|
|
41
|
+
==================
|
|
42
|
+
|
|
43
|
+
* add: allow cflag style option params, unit test, fixes #174
|
|
44
|
+
|
|
45
|
+
2.0.0 / 2013-07-18
|
|
46
|
+
==================
|
|
47
|
+
|
|
48
|
+
* remove input methods (.prompt, .confirm, etc)
|
|
49
|
+
|
|
50
|
+
1.3.2 / 2013-07-18
|
|
51
|
+
==================
|
|
52
|
+
|
|
53
|
+
* add support for sub-commands to co-exist with the original command
|
|
54
|
+
|
|
55
|
+
1.3.1 / 2013-07-18
|
|
56
|
+
==================
|
|
57
|
+
|
|
58
|
+
* add quick .runningCommand hack so you can opt-out of other logic when running a sub command
|
|
59
|
+
|
|
60
|
+
1.3.0 / 2013-07-09
|
|
61
|
+
==================
|
|
62
|
+
|
|
63
|
+
* add EACCES error handling
|
|
64
|
+
* fix sub-command --help
|
|
65
|
+
|
|
66
|
+
1.2.0 / 2013-06-13
|
|
67
|
+
==================
|
|
68
|
+
|
|
69
|
+
* allow "-" hyphen as an option argument
|
|
70
|
+
* support for RegExp coercion
|
|
71
|
+
|
|
72
|
+
1.1.1 / 2012-11-20
|
|
73
|
+
==================
|
|
74
|
+
|
|
75
|
+
* add more sub-command padding
|
|
76
|
+
* fix .usage() when args are present. Closes #106
|
|
77
|
+
|
|
78
|
+
1.1.0 / 2012-11-16
|
|
79
|
+
==================
|
|
80
|
+
|
|
81
|
+
* add git-style executable subcommand support. Closes #94
|
|
82
|
+
|
|
83
|
+
1.0.5 / 2012-10-09
|
|
84
|
+
==================
|
|
85
|
+
|
|
86
|
+
* fix `--name` clobbering. Closes #92
|
|
87
|
+
* fix examples/help. Closes #89
|
|
88
|
+
|
|
89
|
+
1.0.4 / 2012-09-03
|
|
90
|
+
==================
|
|
91
|
+
|
|
92
|
+
* add `outputHelp()` method.
|
|
93
|
+
|
|
94
|
+
1.0.3 / 2012-08-30
|
|
95
|
+
==================
|
|
96
|
+
|
|
97
|
+
* remove invalid .version() defaulting
|
|
98
|
+
|
|
99
|
+
1.0.2 / 2012-08-24
|
|
100
|
+
==================
|
|
101
|
+
|
|
102
|
+
* add `--foo=bar` support [arv]
|
|
103
|
+
* fix password on node 0.8.8. Make backward compatible with 0.6 [focusaurus]
|
|
104
|
+
|
|
105
|
+
1.0.1 / 2012-08-03
|
|
106
|
+
==================
|
|
107
|
+
|
|
108
|
+
* fix issue #56
|
|
109
|
+
* fix tty.setRawMode(mode) was moved to tty.ReadStream#setRawMode() (i.e. process.stdin.setRawMode())
|
|
110
|
+
|
|
111
|
+
1.0.0 / 2012-07-05
|
|
112
|
+
==================
|
|
113
|
+
|
|
114
|
+
* add support for optional option descriptions
|
|
115
|
+
* add defaulting of `.version()` to package.json's version
|
|
116
|
+
|
|
117
|
+
0.6.1 / 2012-06-01
|
|
118
|
+
==================
|
|
119
|
+
|
|
120
|
+
* Added: append (yes or no) on confirmation
|
|
121
|
+
* Added: allow node.js v0.7.x
|
|
122
|
+
|
|
123
|
+
0.6.0 / 2012-04-10
|
|
124
|
+
==================
|
|
125
|
+
|
|
126
|
+
* Added `.prompt(obj, callback)` support. Closes #49
|
|
127
|
+
* Added default support to .choose(). Closes #41
|
|
128
|
+
* Fixed the choice example
|
|
129
|
+
|
|
130
|
+
0.5.1 / 2011-12-20
|
|
131
|
+
==================
|
|
132
|
+
|
|
133
|
+
* Fixed `password()` for recent nodes. Closes #36
|
|
134
|
+
|
|
135
|
+
0.5.0 / 2011-12-04
|
|
136
|
+
==================
|
|
137
|
+
|
|
138
|
+
* Added sub-command option support [itay]
|
|
139
|
+
|
|
140
|
+
0.4.3 / 2011-12-04
|
|
141
|
+
==================
|
|
142
|
+
|
|
143
|
+
* Fixed custom help ordering. Closes #32
|
|
144
|
+
|
|
145
|
+
0.4.2 / 2011-11-24
|
|
146
|
+
==================
|
|
147
|
+
|
|
148
|
+
* Added travis support
|
|
149
|
+
* Fixed: line-buffered input automatically trimmed. Closes #31
|
|
150
|
+
|
|
151
|
+
0.4.1 / 2011-11-18
|
|
152
|
+
==================
|
|
153
|
+
|
|
154
|
+
* Removed listening for "close" on --help
|
|
155
|
+
|
|
156
|
+
0.4.0 / 2011-11-15
|
|
157
|
+
==================
|
|
158
|
+
|
|
159
|
+
* Added support for `--`. Closes #24
|
|
160
|
+
|
|
161
|
+
0.3.3 / 2011-11-14
|
|
162
|
+
==================
|
|
163
|
+
|
|
164
|
+
* Fixed: wait for close event when writing help info [Jerry Hamlet]
|
|
165
|
+
|
|
166
|
+
0.3.2 / 2011-11-01
|
|
167
|
+
==================
|
|
168
|
+
|
|
169
|
+
* Fixed long flag definitions with values [felixge]
|
|
170
|
+
|
|
171
|
+
0.3.1 / 2011-10-31
|
|
172
|
+
==================
|
|
173
|
+
|
|
174
|
+
* Changed `--version` short flag to `-V` from `-v`
|
|
175
|
+
* Changed `.version()` so it's configurable [felixge]
|
|
176
|
+
|
|
177
|
+
0.3.0 / 2011-10-31
|
|
178
|
+
==================
|
|
179
|
+
|
|
180
|
+
* Added support for long flags only. Closes #18
|
|
181
|
+
|
|
182
|
+
0.2.1 / 2011-10-24
|
|
183
|
+
==================
|
|
184
|
+
|
|
185
|
+
* "node": ">= 0.4.x < 0.7.0". Closes #20
|
|
186
|
+
|
|
187
|
+
0.2.0 / 2011-09-26
|
|
188
|
+
==================
|
|
189
|
+
|
|
190
|
+
* Allow for defaults that are not just boolean. Default peassignment only occurs for --no-*, optional, and required arguments. [Jim Isaacs]
|
|
191
|
+
|
|
192
|
+
0.1.0 / 2011-08-24
|
|
193
|
+
==================
|
|
194
|
+
|
|
195
|
+
* Added support for custom `--help` output
|
|
196
|
+
|
|
197
|
+
0.0.5 / 2011-08-18
|
|
198
|
+
==================
|
|
199
|
+
|
|
200
|
+
* Changed: when the user enters nothing prompt for password again
|
|
201
|
+
* Fixed issue with passwords beginning with numbers [NuckChorris]
|
|
202
|
+
|
|
203
|
+
0.0.4 / 2011-08-15
|
|
204
|
+
==================
|
|
205
|
+
|
|
206
|
+
* Fixed `Commander#args`
|
|
207
|
+
|
|
208
|
+
0.0.3 / 2011-08-15
|
|
209
|
+
==================
|
|
210
|
+
|
|
211
|
+
* Added default option value support
|
|
212
|
+
|
|
213
|
+
0.0.2 / 2011-08-15
|
|
214
|
+
==================
|
|
215
|
+
|
|
216
|
+
* Added mask support to `Command#password(str[, mask], fn)`
|
|
217
|
+
* Added `Command#password(str, fn)`
|
|
218
|
+
|
|
219
|
+
0.0.1 / 2010-01-03
|
|
220
|
+
==================
|
|
221
|
+
|
|
222
|
+
* Initial release
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
# Commander.js
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](http://travis-ci.org/tj/commander.js)
|
|
4
|
+
[](https://www.npmjs.org/package/commander)
|
|
5
|
+
[](https://www.npmjs.org/package/commander)
|
|
6
|
+
|
|
7
|
+
The complete solution for [node.js](http://nodejs.org) command-line interfaces, inspired by Ruby's [commander](https://github.com/tj/commander).
|
|
8
|
+
[API documentation](http://tj.github.com/commander.js/)
|
|
4
9
|
|
|
5
|
-
[](http://travis-ci.org/visionmedia/commander.js)
|
|
6
10
|
|
|
7
11
|
## Installation
|
|
8
12
|
|
|
@@ -38,25 +42,6 @@ console.log(' - %s cheese', program.cheese);
|
|
|
38
42
|
|
|
39
43
|
Short flags may be passed as a single arg, for example `-abc` is equivalent to `-a -b -c`. Multi-word options such as "--template-engine" are camel-cased, becoming `program.templateEngine` etc.
|
|
40
44
|
|
|
41
|
-
## Automated --help
|
|
42
|
-
|
|
43
|
-
The help information is auto-generated based on the information commander already knows about your program, so the following `--help` info is for free:
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
$ ./examples/pizza --help
|
|
47
|
-
|
|
48
|
-
Usage: pizza [options]
|
|
49
|
-
|
|
50
|
-
Options:
|
|
51
|
-
|
|
52
|
-
-V, --version output the version number
|
|
53
|
-
-p, --peppers Add peppers
|
|
54
|
-
-P, --pineapple Add pineapple
|
|
55
|
-
-b, --bbq Add bbq sauce
|
|
56
|
-
-c, --cheese <type> Add the specified type of cheese [marble]
|
|
57
|
-
-h, --help output usage information
|
|
58
|
-
|
|
59
|
-
```
|
|
60
45
|
|
|
61
46
|
## Coercion
|
|
62
47
|
|
|
@@ -86,7 +71,7 @@ program
|
|
|
86
71
|
.option('-r, --range <a>..<b>', 'A range', range)
|
|
87
72
|
.option('-l, --list <items>', 'A list', list)
|
|
88
73
|
.option('-o, --optional [value]', 'An optional value')
|
|
89
|
-
.option('-c, --collect [value]', 'A repeatable value', [])
|
|
74
|
+
.option('-c, --collect [value]', 'A repeatable value', collect, [])
|
|
90
75
|
.option('-v, --verbose', 'A value that can be increased', increaseVerbosity, 0)
|
|
91
76
|
.parse(process.argv);
|
|
92
77
|
|
|
@@ -101,6 +86,78 @@ console.log(' verbosity: %j', program.verbose);
|
|
|
101
86
|
console.log(' args: %j', program.args);
|
|
102
87
|
```
|
|
103
88
|
|
|
89
|
+
## Variadic arguments
|
|
90
|
+
|
|
91
|
+
The last argument of a command can be variadic, and only the last argument. To make an argument variadic you have to
|
|
92
|
+
append `...` to the argument name. Here is an example:
|
|
93
|
+
|
|
94
|
+
```js
|
|
95
|
+
#!/usr/bin/env node
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Module dependencies.
|
|
99
|
+
*/
|
|
100
|
+
|
|
101
|
+
var program = require('commander');
|
|
102
|
+
|
|
103
|
+
program
|
|
104
|
+
.version('0.0.1')
|
|
105
|
+
.command('rmdir <dir> [otherDirs...]')
|
|
106
|
+
.action(function (dir, otherDirs) {
|
|
107
|
+
console.log('rmdir %s', dir);
|
|
108
|
+
if (otherDirs) {
|
|
109
|
+
otherDirs.forEach(function (oDir) {
|
|
110
|
+
console.log('rmdir %s', oDir);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
program.parse(process.argv);
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
An `Array` is used for the value of a variadic argument. This applies to `program.args` as well as the argument passed
|
|
119
|
+
to your action as demonstrated above.
|
|
120
|
+
|
|
121
|
+
## Git-style sub-commands
|
|
122
|
+
|
|
123
|
+
```js
|
|
124
|
+
// file: ./examples/pm
|
|
125
|
+
var program = require('..');
|
|
126
|
+
|
|
127
|
+
program
|
|
128
|
+
.version('0.0.1')
|
|
129
|
+
.command('install [name]', 'install one or more packages')
|
|
130
|
+
.command('search [query]', 'search with optional query')
|
|
131
|
+
.command('list', 'list packages installed')
|
|
132
|
+
.parse(process.argv);
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
When `.command()` is invoked with a description argument, no `.action(callback)` should be called to handle sub-commands, otherwise there will be an error. This tells commander that you're going to use separate executables for sub-commands, much like `git(1)` and other popular tools.
|
|
136
|
+
The commander will try to find the executable script in __current directory__ with the name `scriptBasename-subcommand`, like `pm-install`, `pm-search`.
|
|
137
|
+
|
|
138
|
+
## Automated --help
|
|
139
|
+
|
|
140
|
+
The help information is auto-generated based on the information commander already knows about your program, so the following `--help` info is for free:
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
$ ./examples/pizza --help
|
|
144
|
+
|
|
145
|
+
Usage: pizza [options]
|
|
146
|
+
|
|
147
|
+
An application for pizzas ordering
|
|
148
|
+
|
|
149
|
+
Options:
|
|
150
|
+
|
|
151
|
+
-h, --help output usage information
|
|
152
|
+
-V, --version output the version number
|
|
153
|
+
-p, --peppers Add peppers
|
|
154
|
+
-P, --pineapple Add pineapple
|
|
155
|
+
-b, --bbq Add bbq sauce
|
|
156
|
+
-c, --cheese <type> Add the specified type of cheese [marble]
|
|
157
|
+
-C, --no-cheese You do not want any cheese
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
|
|
104
161
|
## Custom help
|
|
105
162
|
|
|
106
163
|
You can display arbitrary `-h, --help` information
|
|
@@ -117,11 +174,7 @@ console.log(' args: %j', program.args);
|
|
|
117
174
|
* Module dependencies.
|
|
118
175
|
*/
|
|
119
176
|
|
|
120
|
-
var program = require('
|
|
121
|
-
|
|
122
|
-
function list(val) {
|
|
123
|
-
return val.split(',').map(Number);
|
|
124
|
-
}
|
|
177
|
+
var program = require('commander');
|
|
125
178
|
|
|
126
179
|
program
|
|
127
180
|
.version('0.0.1')
|
|
@@ -145,7 +198,7 @@ program.parse(process.argv);
|
|
|
145
198
|
console.log('stuff');
|
|
146
199
|
```
|
|
147
200
|
|
|
148
|
-
|
|
201
|
+
Yields the following help output when `node script-name.js -h` or `node script-name.js --help` are run:
|
|
149
202
|
|
|
150
203
|
```
|
|
151
204
|
|
|
@@ -174,15 +227,54 @@ Examples:
|
|
|
174
227
|
|
|
175
228
|
Output help information and exit immediately.
|
|
176
229
|
|
|
177
|
-
##
|
|
230
|
+
## Examples
|
|
231
|
+
|
|
232
|
+
```js
|
|
233
|
+
var program = require('commander');
|
|
234
|
+
|
|
235
|
+
program
|
|
236
|
+
.version('0.0.1')
|
|
237
|
+
.option('-C, --chdir <path>', 'change the working directory')
|
|
238
|
+
.option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
|
|
239
|
+
.option('-T, --no-tests', 'ignore test hook')
|
|
240
|
+
|
|
241
|
+
program
|
|
242
|
+
.command('setup [env]')
|
|
243
|
+
.description('run setup commands for all envs')
|
|
244
|
+
.option("-s, --setup_mode [mode]", "Which setup mode to use")
|
|
245
|
+
.action(function(env, options){
|
|
246
|
+
var mode = options.setup_mode || "normal";
|
|
247
|
+
env = env || 'all';
|
|
248
|
+
console.log('setup for %s env(s) with %s mode', env, mode);
|
|
249
|
+
});
|
|
250
|
+
|
|
251
|
+
program
|
|
252
|
+
.command('exec <cmd>')
|
|
253
|
+
.alias('ex')
|
|
254
|
+
.description('execute the given remote cmd')
|
|
255
|
+
.option("-e, --exec_mode <mode>", "Which exec mode to use")
|
|
256
|
+
.action(function(cmd, options){
|
|
257
|
+
console.log('exec "%s" using %s mode', cmd, options.exec_mode);
|
|
258
|
+
}).on('--help', function() {
|
|
259
|
+
console.log(' Examples:');
|
|
260
|
+
console.log();
|
|
261
|
+
console.log(' $ deploy exec sequential');
|
|
262
|
+
console.log(' $ deploy exec async');
|
|
263
|
+
console.log();
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
program
|
|
267
|
+
.command('*')
|
|
268
|
+
.action(function(env){
|
|
269
|
+
console.log('deploying "%s"', env);
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
program.parse(process.argv);
|
|
273
|
+
```
|
|
178
274
|
|
|
179
|
-
|
|
180
|
-
- [ascii tables](https://github.com/LearnBoost/cli-table)
|
|
181
|
-
- [progress bars](https://github.com/visionmedia/node-progress)
|
|
182
|
-
- [more progress bars](https://github.com/substack/node-multimeter)
|
|
183
|
-
- [examples](https://github.com/visionmedia/commander.js/tree/master/examples)
|
|
275
|
+
You can see more Demos in the [examples](https://github.com/tj/commander.js/tree/master/examples) directory.
|
|
184
276
|
|
|
185
|
-
## License
|
|
277
|
+
## License
|
|
186
278
|
|
|
187
279
|
(The MIT License)
|
|
188
280
|
|
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
|
|
6
6
|
var EventEmitter = require('events').EventEmitter;
|
|
7
7
|
var spawn = require('child_process').spawn;
|
|
8
|
-
var fs = require('fs');
|
|
9
|
-
var exists = fs.existsSync;
|
|
10
8
|
var path = require('path');
|
|
11
9
|
var dirname = path.dirname;
|
|
12
10
|
var basename = path.basename;
|
|
@@ -15,7 +13,7 @@ var basename = path.basename;
|
|
|
15
13
|
* Expose the root command.
|
|
16
14
|
*/
|
|
17
15
|
|
|
18
|
-
exports = module.exports = new Command;
|
|
16
|
+
exports = module.exports = new Command();
|
|
19
17
|
|
|
20
18
|
/**
|
|
21
19
|
* Expose `Command`.
|
|
@@ -55,7 +53,7 @@ function Option(flags, description) {
|
|
|
55
53
|
* @api private
|
|
56
54
|
*/
|
|
57
55
|
|
|
58
|
-
Option.prototype.name = function(){
|
|
56
|
+
Option.prototype.name = function() {
|
|
59
57
|
return this.long
|
|
60
58
|
.replace('--', '')
|
|
61
59
|
.replace('no-', '');
|
|
@@ -69,9 +67,8 @@ Option.prototype.name = function(){
|
|
|
69
67
|
* @api private
|
|
70
68
|
*/
|
|
71
69
|
|
|
72
|
-
Option.prototype.is = function(arg){
|
|
73
|
-
return arg == this.short
|
|
74
|
-
|| arg == this.long;
|
|
70
|
+
Option.prototype.is = function(arg) {
|
|
71
|
+
return arg == this.short || arg == this.long;
|
|
75
72
|
};
|
|
76
73
|
|
|
77
74
|
/**
|
|
@@ -85,6 +82,7 @@ function Command(name) {
|
|
|
85
82
|
this.commands = [];
|
|
86
83
|
this.options = [];
|
|
87
84
|
this._execs = [];
|
|
85
|
+
this._allowUnknownOption = false;
|
|
88
86
|
this._args = [];
|
|
89
87
|
this._name = name;
|
|
90
88
|
}
|
|
@@ -118,41 +116,58 @@ Command.prototype.__proto__ = EventEmitter.prototype;
|
|
|
118
116
|
* program
|
|
119
117
|
* .command('setup')
|
|
120
118
|
* .description('run remote setup commands')
|
|
121
|
-
* .action(function(){
|
|
119
|
+
* .action(function() {
|
|
122
120
|
* console.log('setup');
|
|
123
121
|
* });
|
|
124
122
|
*
|
|
125
123
|
* program
|
|
126
124
|
* .command('exec <cmd>')
|
|
127
125
|
* .description('run the given remote command')
|
|
128
|
-
* .action(function(cmd){
|
|
126
|
+
* .action(function(cmd) {
|
|
129
127
|
* console.log('exec "%s"', cmd);
|
|
130
128
|
* });
|
|
131
129
|
*
|
|
132
130
|
* program
|
|
131
|
+
* .command('teardown <dir> [otherDirs...]')
|
|
132
|
+
* .description('run teardown commands')
|
|
133
|
+
* .action(function(dir, otherDirs) {
|
|
134
|
+
* console.log('dir "%s"', dir);
|
|
135
|
+
* if (otherDirs) {
|
|
136
|
+
* otherDirs.forEach(function (oDir) {
|
|
137
|
+
* console.log('dir "%s"', oDir);
|
|
138
|
+
* });
|
|
139
|
+
* }
|
|
140
|
+
* });
|
|
141
|
+
*
|
|
142
|
+
* program
|
|
133
143
|
* .command('*')
|
|
134
144
|
* .description('deploy the given env')
|
|
135
|
-
* .action(function(env){
|
|
145
|
+
* .action(function(env) {
|
|
136
146
|
* console.log('deploying "%s"', env);
|
|
137
147
|
* });
|
|
138
148
|
*
|
|
139
149
|
* program.parse(process.argv);
|
|
140
150
|
*
|
|
141
151
|
* @param {String} name
|
|
142
|
-
* @param {String} [desc]
|
|
152
|
+
* @param {String} [desc] for git-style sub-commands
|
|
143
153
|
* @return {Command} the new command
|
|
144
154
|
* @api public
|
|
145
155
|
*/
|
|
146
156
|
|
|
147
|
-
Command.prototype.command = function(name, desc){
|
|
157
|
+
Command.prototype.command = function(name, desc) {
|
|
148
158
|
var args = name.split(/ +/);
|
|
149
159
|
var cmd = new Command(args.shift());
|
|
150
|
-
|
|
151
|
-
if (desc)
|
|
152
|
-
|
|
160
|
+
|
|
161
|
+
if (desc) {
|
|
162
|
+
cmd.description(desc);
|
|
163
|
+
this.executables = true;
|
|
164
|
+
this._execs[cmd._name] = true;
|
|
165
|
+
}
|
|
166
|
+
|
|
153
167
|
this.commands.push(cmd);
|
|
154
168
|
cmd.parseExpectedArgs(args);
|
|
155
169
|
cmd.parent = this;
|
|
170
|
+
|
|
156
171
|
if (desc) return this;
|
|
157
172
|
return cmd;
|
|
158
173
|
};
|
|
@@ -178,18 +193,33 @@ Command.prototype.addImplicitHelpCommand = function() {
|
|
|
178
193
|
* @api public
|
|
179
194
|
*/
|
|
180
195
|
|
|
181
|
-
Command.prototype.parseExpectedArgs = function(args){
|
|
196
|
+
Command.prototype.parseExpectedArgs = function(args) {
|
|
182
197
|
if (!args.length) return;
|
|
183
198
|
var self = this;
|
|
184
|
-
args.forEach(function(arg){
|
|
199
|
+
args.forEach(function(arg) {
|
|
200
|
+
var argDetails = {
|
|
201
|
+
required: false,
|
|
202
|
+
name: '',
|
|
203
|
+
variadic: false
|
|
204
|
+
};
|
|
205
|
+
|
|
185
206
|
switch (arg[0]) {
|
|
186
207
|
case '<':
|
|
187
|
-
|
|
208
|
+
argDetails.required = true;
|
|
209
|
+
argDetails.name = arg.slice(1, -1);
|
|
188
210
|
break;
|
|
189
211
|
case '[':
|
|
190
|
-
|
|
212
|
+
argDetails.name = arg.slice(1, -1);
|
|
191
213
|
break;
|
|
192
214
|
}
|
|
215
|
+
|
|
216
|
+
if (argDetails.name.length > 3 && argDetails.name.slice(-3) === '...') {
|
|
217
|
+
argDetails.variadic = true;
|
|
218
|
+
argDetails.name = argDetails.name.slice(0, -3);
|
|
219
|
+
}
|
|
220
|
+
if (argDetails.name) {
|
|
221
|
+
self._args.push(argDetails);
|
|
222
|
+
}
|
|
193
223
|
});
|
|
194
224
|
return this;
|
|
195
225
|
};
|
|
@@ -202,7 +232,7 @@ Command.prototype.parseExpectedArgs = function(args){
|
|
|
202
232
|
* program
|
|
203
233
|
* .command('help')
|
|
204
234
|
* .description('display verbose help')
|
|
205
|
-
* .action(function(){
|
|
235
|
+
* .action(function() {
|
|
206
236
|
* // output help here
|
|
207
237
|
* });
|
|
208
238
|
*
|
|
@@ -211,11 +241,13 @@ Command.prototype.parseExpectedArgs = function(args){
|
|
|
211
241
|
* @api public
|
|
212
242
|
*/
|
|
213
243
|
|
|
214
|
-
Command.prototype.action = function(fn){
|
|
244
|
+
Command.prototype.action = function(fn) {
|
|
215
245
|
var self = this;
|
|
216
|
-
|
|
246
|
+
var listener = function(args, unknown) {
|
|
217
247
|
// Parse any so-far unknown options
|
|
248
|
+
args = args || [];
|
|
218
249
|
unknown = unknown || [];
|
|
250
|
+
|
|
219
251
|
var parsed = self.parseOptions(unknown);
|
|
220
252
|
|
|
221
253
|
// Output help if necessary
|
|
@@ -231,9 +263,15 @@ Command.prototype.action = function(fn){
|
|
|
231
263
|
// Leftover arguments need to be pushed back. Fixes issue #56
|
|
232
264
|
if (parsed.args.length) args = parsed.args.concat(args);
|
|
233
265
|
|
|
234
|
-
self._args.forEach(function(arg, i){
|
|
266
|
+
self._args.forEach(function(arg, i) {
|
|
235
267
|
if (arg.required && null == args[i]) {
|
|
236
268
|
self.missingArgument(arg.name);
|
|
269
|
+
} else if (arg.variadic) {
|
|
270
|
+
if (i !== self._args.length - 1) {
|
|
271
|
+
self.variadicArgNotLast(arg.name);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
args[i] = args.splice(i);
|
|
237
275
|
}
|
|
238
276
|
});
|
|
239
277
|
|
|
@@ -246,8 +284,10 @@ Command.prototype.action = function(fn){
|
|
|
246
284
|
args.push(self);
|
|
247
285
|
}
|
|
248
286
|
|
|
249
|
-
fn.apply(
|
|
250
|
-
}
|
|
287
|
+
fn.apply(self, args);
|
|
288
|
+
};
|
|
289
|
+
this.parent.on(this._name, listener);
|
|
290
|
+
if (this._alias) this.parent.on(this._alias, listener);
|
|
251
291
|
return this;
|
|
252
292
|
};
|
|
253
293
|
|
|
@@ -272,7 +312,7 @@ Command.prototype.action = function(fn){
|
|
|
272
312
|
* program.pepper
|
|
273
313
|
* // => Boolean
|
|
274
314
|
*
|
|
275
|
-
* // simple boolean defaulting to
|
|
315
|
+
* // simple boolean defaulting to true
|
|
276
316
|
* program.option('-C, --no-cheese', 'remove cheese');
|
|
277
317
|
*
|
|
278
318
|
* program.cheese
|
|
@@ -280,7 +320,7 @@ Command.prototype.action = function(fn){
|
|
|
280
320
|
*
|
|
281
321
|
* --no-cheese
|
|
282
322
|
* program.cheese
|
|
283
|
-
* // =>
|
|
323
|
+
* // => false
|
|
284
324
|
*
|
|
285
325
|
* // required argument
|
|
286
326
|
* program.option('-C, --chdir <path>', 'change the working directory');
|
|
@@ -300,14 +340,17 @@ Command.prototype.action = function(fn){
|
|
|
300
340
|
* @api public
|
|
301
341
|
*/
|
|
302
342
|
|
|
303
|
-
Command.prototype.option = function(flags, description, fn, defaultValue){
|
|
343
|
+
Command.prototype.option = function(flags, description, fn, defaultValue) {
|
|
304
344
|
var self = this
|
|
305
345
|
, option = new Option(flags, description)
|
|
306
346
|
, oname = option.name()
|
|
307
347
|
, name = camelcase(oname);
|
|
308
348
|
|
|
309
349
|
// default as 3rd arg
|
|
310
|
-
if (
|
|
350
|
+
if (typeof fn != 'function') {
|
|
351
|
+
defaultValue = fn;
|
|
352
|
+
fn = null;
|
|
353
|
+
}
|
|
311
354
|
|
|
312
355
|
// preassign default value only for --no-*, [optional], or <required>
|
|
313
356
|
if (false == option.bool || option.optional || option.required) {
|
|
@@ -322,9 +365,11 @@ Command.prototype.option = function(flags, description, fn, defaultValue){
|
|
|
322
365
|
|
|
323
366
|
// when it's passed assign the value
|
|
324
367
|
// and conditionally invoke the callback
|
|
325
|
-
this.on(oname, function(val){
|
|
368
|
+
this.on(oname, function(val) {
|
|
326
369
|
// coercion
|
|
327
|
-
if (null !== val && fn) val = fn(val, undefined === self[name]
|
|
370
|
+
if (null !== val && fn) val = fn(val, undefined === self[name]
|
|
371
|
+
? defaultValue
|
|
372
|
+
: self[name]);
|
|
328
373
|
|
|
329
374
|
// unassigned or bool
|
|
330
375
|
if ('boolean' == typeof self[name] || 'undefined' == typeof self[name]) {
|
|
@@ -345,6 +390,18 @@ Command.prototype.option = function(flags, description, fn, defaultValue){
|
|
|
345
390
|
return this;
|
|
346
391
|
};
|
|
347
392
|
|
|
393
|
+
/**
|
|
394
|
+
* Allow unknown options on the command line.
|
|
395
|
+
*
|
|
396
|
+
* @param {Boolean} arg if `true` or omitted, no error will be thrown
|
|
397
|
+
* for unknown options.
|
|
398
|
+
* @api public
|
|
399
|
+
*/
|
|
400
|
+
Command.prototype.allowUnknownOption = function(arg) {
|
|
401
|
+
this._allowUnknownOption = arguments.length === 0 || arg;
|
|
402
|
+
return this;
|
|
403
|
+
};
|
|
404
|
+
|
|
348
405
|
/**
|
|
349
406
|
* Parse `argv`, settings options and invoking commands when defined.
|
|
350
407
|
*
|
|
@@ -353,7 +410,7 @@ Command.prototype.option = function(flags, description, fn, defaultValue){
|
|
|
353
410
|
* @api public
|
|
354
411
|
*/
|
|
355
412
|
|
|
356
|
-
Command.prototype.parse = function(argv){
|
|
413
|
+
Command.prototype.parse = function(argv) {
|
|
357
414
|
// implicit help
|
|
358
415
|
if (this.executables) this.addImplicitHelpCommand();
|
|
359
416
|
|
|
@@ -371,7 +428,9 @@ Command.prototype.parse = function(argv){
|
|
|
371
428
|
|
|
372
429
|
// executable sub-commands
|
|
373
430
|
var name = result.args[0];
|
|
374
|
-
if (this._execs[name]
|
|
431
|
+
if (this._execs[name] && typeof this._execs[name] != "function") {
|
|
432
|
+
return this.executeSubCommand(argv, args, parsed.unknown);
|
|
433
|
+
}
|
|
375
434
|
|
|
376
435
|
return result;
|
|
377
436
|
};
|
|
@@ -408,7 +467,7 @@ Command.prototype.executeSubCommand = function(argv, args, unknown) {
|
|
|
408
467
|
args = args.slice(1);
|
|
409
468
|
args.unshift(local);
|
|
410
469
|
var proc = spawn('node', args, { stdio: 'inherit', customFds: [0, 1, 2] });
|
|
411
|
-
proc.on('error', function(err){
|
|
470
|
+
proc.on('error', function(err) {
|
|
412
471
|
if (err.code == "ENOENT") {
|
|
413
472
|
console.error('\n %s(1) does not exist, try --help\n', bin);
|
|
414
473
|
} else if (err.code == "EACCES") {
|
|
@@ -429,7 +488,7 @@ Command.prototype.executeSubCommand = function(argv, args, unknown) {
|
|
|
429
488
|
* @api private
|
|
430
489
|
*/
|
|
431
490
|
|
|
432
|
-
Command.prototype.normalize = function(args){
|
|
491
|
+
Command.prototype.normalize = function(args) {
|
|
433
492
|
var ret = []
|
|
434
493
|
, arg
|
|
435
494
|
, lastOpt
|
|
@@ -437,12 +496,18 @@ Command.prototype.normalize = function(args){
|
|
|
437
496
|
|
|
438
497
|
for (var i = 0, len = args.length; i < len; ++i) {
|
|
439
498
|
arg = args[i];
|
|
440
|
-
i > 0
|
|
499
|
+
if (i > 0) {
|
|
500
|
+
lastOpt = this.optionFor(args[i-1]);
|
|
501
|
+
}
|
|
441
502
|
|
|
442
|
-
if (
|
|
443
|
-
|
|
503
|
+
if (arg === '--') {
|
|
504
|
+
// Honor option terminator
|
|
505
|
+
ret = ret.concat(args.slice(i));
|
|
506
|
+
break;
|
|
507
|
+
} else if (lastOpt && lastOpt.required) {
|
|
508
|
+
ret.push(arg);
|
|
444
509
|
} else if (arg.length > 1 && '-' == arg[0] && '-' != arg[1]) {
|
|
445
|
-
arg.slice(1).split('').forEach(function(c){
|
|
510
|
+
arg.slice(1).split('').forEach(function(c) {
|
|
446
511
|
ret.push('-' + c);
|
|
447
512
|
});
|
|
448
513
|
} else if (/^--/.test(arg) && ~(index = arg.indexOf('='))) {
|
|
@@ -467,10 +532,8 @@ Command.prototype.normalize = function(args){
|
|
|
467
532
|
* @api private
|
|
468
533
|
*/
|
|
469
534
|
|
|
470
|
-
Command.prototype.parseArgs = function(args, unknown){
|
|
471
|
-
var
|
|
472
|
-
, len = cmds.length
|
|
473
|
-
, name;
|
|
535
|
+
Command.prototype.parseArgs = function(args, unknown) {
|
|
536
|
+
var name;
|
|
474
537
|
|
|
475
538
|
if (args.length) {
|
|
476
539
|
name = args[0];
|
|
@@ -500,7 +563,7 @@ Command.prototype.parseArgs = function(args, unknown){
|
|
|
500
563
|
* @api private
|
|
501
564
|
*/
|
|
502
565
|
|
|
503
|
-
Command.prototype.optionFor = function(arg){
|
|
566
|
+
Command.prototype.optionFor = function(arg) {
|
|
504
567
|
for (var i = 0, len = this.options.length; i < len; ++i) {
|
|
505
568
|
if (this.options[i].is(arg)) {
|
|
506
569
|
return this.options[i];
|
|
@@ -517,7 +580,7 @@ Command.prototype.optionFor = function(arg){
|
|
|
517
580
|
* @api public
|
|
518
581
|
*/
|
|
519
582
|
|
|
520
|
-
Command.prototype.parseOptions = function(argv){
|
|
583
|
+
Command.prototype.parseOptions = function(argv) {
|
|
521
584
|
var args = []
|
|
522
585
|
, len = argv.length
|
|
523
586
|
, literal
|
|
@@ -587,6 +650,23 @@ Command.prototype.parseOptions = function(argv){
|
|
|
587
650
|
return { args: args, unknown: unknownOptions };
|
|
588
651
|
};
|
|
589
652
|
|
|
653
|
+
/**
|
|
654
|
+
* Return an object containing options as key-value pairs
|
|
655
|
+
*
|
|
656
|
+
* @return {Object}
|
|
657
|
+
* @api public
|
|
658
|
+
*/
|
|
659
|
+
Command.prototype.opts = function() {
|
|
660
|
+
var result = {}
|
|
661
|
+
, len = this.options.length;
|
|
662
|
+
|
|
663
|
+
for (var i = 0 ; i < len; i++) {
|
|
664
|
+
var key = this.options[i].name();
|
|
665
|
+
result[key] = key === 'version' ? this._version : this[key];
|
|
666
|
+
}
|
|
667
|
+
return result;
|
|
668
|
+
};
|
|
669
|
+
|
|
590
670
|
/**
|
|
591
671
|
* Argument `name` is missing.
|
|
592
672
|
*
|
|
@@ -594,7 +674,7 @@ Command.prototype.parseOptions = function(argv){
|
|
|
594
674
|
* @api private
|
|
595
675
|
*/
|
|
596
676
|
|
|
597
|
-
Command.prototype.missingArgument = function(name){
|
|
677
|
+
Command.prototype.missingArgument = function(name) {
|
|
598
678
|
console.error();
|
|
599
679
|
console.error(" error: missing required argument `%s'", name);
|
|
600
680
|
console.error();
|
|
@@ -609,7 +689,7 @@ Command.prototype.missingArgument = function(name){
|
|
|
609
689
|
* @api private
|
|
610
690
|
*/
|
|
611
691
|
|
|
612
|
-
Command.prototype.optionMissingArgument = function(option, flag){
|
|
692
|
+
Command.prototype.optionMissingArgument = function(option, flag) {
|
|
613
693
|
console.error();
|
|
614
694
|
if (flag) {
|
|
615
695
|
console.error(" error: option `%s' argument missing, got `%s'", option.flags, flag);
|
|
@@ -627,13 +707,27 @@ Command.prototype.optionMissingArgument = function(option, flag){
|
|
|
627
707
|
* @api private
|
|
628
708
|
*/
|
|
629
709
|
|
|
630
|
-
Command.prototype.unknownOption = function(flag){
|
|
710
|
+
Command.prototype.unknownOption = function(flag) {
|
|
711
|
+
if(this._allowUnknownOption) return;
|
|
631
712
|
console.error();
|
|
632
713
|
console.error(" error: unknown option `%s'", flag);
|
|
633
714
|
console.error();
|
|
634
715
|
process.exit(1);
|
|
635
716
|
};
|
|
636
717
|
|
|
718
|
+
/**
|
|
719
|
+
* Variadic argument with `name` is not the last argument as required.
|
|
720
|
+
*
|
|
721
|
+
* @param {String} name
|
|
722
|
+
* @api private
|
|
723
|
+
*/
|
|
724
|
+
|
|
725
|
+
Command.prototype.variadicArgNotLast = function(name) {
|
|
726
|
+
console.error();
|
|
727
|
+
console.error(" error: variadic arguments must be last `%s'", name);
|
|
728
|
+
console.error();
|
|
729
|
+
process.exit(1);
|
|
730
|
+
};
|
|
637
731
|
|
|
638
732
|
/**
|
|
639
733
|
* Set the program version to `str`.
|
|
@@ -647,32 +741,46 @@ Command.prototype.unknownOption = function(flag){
|
|
|
647
741
|
* @api public
|
|
648
742
|
*/
|
|
649
743
|
|
|
650
|
-
Command.prototype.version = function(str, flags){
|
|
744
|
+
Command.prototype.version = function(str, flags) {
|
|
651
745
|
if (0 == arguments.length) return this._version;
|
|
652
746
|
this._version = str;
|
|
653
747
|
flags = flags || '-V, --version';
|
|
654
748
|
this.option(flags, 'output the version number');
|
|
655
|
-
this.on('version', function(){
|
|
656
|
-
|
|
749
|
+
this.on('version', function() {
|
|
750
|
+
process.stdout.write(str + '\n');
|
|
657
751
|
process.exit(0);
|
|
658
752
|
});
|
|
659
753
|
return this;
|
|
660
754
|
};
|
|
661
755
|
|
|
662
756
|
/**
|
|
663
|
-
* Set the description `str`.
|
|
757
|
+
* Set the description to `str`.
|
|
664
758
|
*
|
|
665
759
|
* @param {String} str
|
|
666
760
|
* @return {String|Command}
|
|
667
761
|
* @api public
|
|
668
762
|
*/
|
|
669
763
|
|
|
670
|
-
Command.prototype.description = function(str){
|
|
764
|
+
Command.prototype.description = function(str) {
|
|
671
765
|
if (0 == arguments.length) return this._description;
|
|
672
766
|
this._description = str;
|
|
673
767
|
return this;
|
|
674
768
|
};
|
|
675
769
|
|
|
770
|
+
/**
|
|
771
|
+
* Set an alias for the command
|
|
772
|
+
*
|
|
773
|
+
* @param {String} alias
|
|
774
|
+
* @return {String|Command}
|
|
775
|
+
* @api public
|
|
776
|
+
*/
|
|
777
|
+
|
|
778
|
+
Command.prototype.alias = function(alias) {
|
|
779
|
+
if (0 == arguments.length) return this._alias;
|
|
780
|
+
this._alias = alias;
|
|
781
|
+
return this;
|
|
782
|
+
};
|
|
783
|
+
|
|
676
784
|
/**
|
|
677
785
|
* Set / get the command usage `str`.
|
|
678
786
|
*
|
|
@@ -681,17 +789,14 @@ Command.prototype.description = function(str){
|
|
|
681
789
|
* @api public
|
|
682
790
|
*/
|
|
683
791
|
|
|
684
|
-
Command.prototype.usage = function(str){
|
|
685
|
-
var args = this._args.map(function(arg){
|
|
686
|
-
return arg
|
|
687
|
-
? '<' + arg.name + '>'
|
|
688
|
-
: '[' + arg.name + ']';
|
|
792
|
+
Command.prototype.usage = function(str) {
|
|
793
|
+
var args = this._args.map(function(arg) {
|
|
794
|
+
return humanReadableArgName(arg);
|
|
689
795
|
});
|
|
690
796
|
|
|
691
|
-
var usage = '[options'
|
|
692
|
-
+ (this.commands.length ? '
|
|
693
|
-
+ '
|
|
694
|
-
+ (this._args.length ? ' ' + args : '');
|
|
797
|
+
var usage = '[options]'
|
|
798
|
+
+ (this.commands.length ? ' [command]' : '')
|
|
799
|
+
+ (this._args.length ? ' ' + args.join(' ') : '');
|
|
695
800
|
|
|
696
801
|
if (0 == arguments.length) return this._usage || usage;
|
|
697
802
|
this._usage = str;
|
|
@@ -699,6 +804,18 @@ Command.prototype.usage = function(str){
|
|
|
699
804
|
return this;
|
|
700
805
|
};
|
|
701
806
|
|
|
807
|
+
/**
|
|
808
|
+
* Get the name of the command
|
|
809
|
+
*
|
|
810
|
+
* @param {String} name
|
|
811
|
+
* @return {String|Command}
|
|
812
|
+
* @api public
|
|
813
|
+
*/
|
|
814
|
+
|
|
815
|
+
Command.prototype.name = function(name) {
|
|
816
|
+
return this._name;
|
|
817
|
+
};
|
|
818
|
+
|
|
702
819
|
/**
|
|
703
820
|
* Return the largest option length.
|
|
704
821
|
*
|
|
@@ -706,8 +823,8 @@ Command.prototype.usage = function(str){
|
|
|
706
823
|
* @api private
|
|
707
824
|
*/
|
|
708
825
|
|
|
709
|
-
Command.prototype.largestOptionLength = function(){
|
|
710
|
-
return this.options.reduce(function(max, option){
|
|
826
|
+
Command.prototype.largestOptionLength = function() {
|
|
827
|
+
return this.options.reduce(function(max, option) {
|
|
711
828
|
return Math.max(max, option.flags.length);
|
|
712
829
|
}, 0);
|
|
713
830
|
};
|
|
@@ -719,14 +836,13 @@ Command.prototype.largestOptionLength = function(){
|
|
|
719
836
|
* @api private
|
|
720
837
|
*/
|
|
721
838
|
|
|
722
|
-
Command.prototype.optionHelp = function(){
|
|
839
|
+
Command.prototype.optionHelp = function() {
|
|
723
840
|
var width = this.largestOptionLength();
|
|
724
841
|
|
|
725
842
|
// Prepend the help information
|
|
726
843
|
return [pad('-h, --help', width) + ' ' + 'output usage information']
|
|
727
|
-
.concat(this.options.map(function(option){
|
|
728
|
-
return pad(option.flags, width)
|
|
729
|
-
+ ' ' + option.description;
|
|
844
|
+
.concat(this.options.map(function(option) {
|
|
845
|
+
return pad(option.flags, width) + ' ' + option.description;
|
|
730
846
|
}))
|
|
731
847
|
.join('\n');
|
|
732
848
|
};
|
|
@@ -738,26 +854,37 @@ Command.prototype.optionHelp = function(){
|
|
|
738
854
|
* @api private
|
|
739
855
|
*/
|
|
740
856
|
|
|
741
|
-
Command.prototype.commandHelp = function(){
|
|
857
|
+
Command.prototype.commandHelp = function() {
|
|
742
858
|
if (!this.commands.length) return '';
|
|
859
|
+
|
|
860
|
+
var commands = this.commands.map(function(cmd) {
|
|
861
|
+
var args = cmd._args.map(function(arg) {
|
|
862
|
+
return humanReadableArgName(arg);
|
|
863
|
+
}).join(' ');
|
|
864
|
+
|
|
865
|
+
return [
|
|
866
|
+
cmd._name
|
|
867
|
+
+ (cmd._alias
|
|
868
|
+
? '|' + cmd._alias
|
|
869
|
+
: '')
|
|
870
|
+
+ (cmd.options.length
|
|
871
|
+
? ' [options]'
|
|
872
|
+
: '')
|
|
873
|
+
+ ' ' + args
|
|
874
|
+
, cmd.description()
|
|
875
|
+
];
|
|
876
|
+
});
|
|
877
|
+
|
|
878
|
+
var width = commands.reduce(function(max, command) {
|
|
879
|
+
return Math.max(max, command[0].length);
|
|
880
|
+
}, 0);
|
|
881
|
+
|
|
743
882
|
return [
|
|
744
883
|
''
|
|
745
884
|
, ' Commands:'
|
|
746
885
|
, ''
|
|
747
|
-
,
|
|
748
|
-
|
|
749
|
-
return arg.required
|
|
750
|
-
? '<' + arg.name + '>'
|
|
751
|
-
: '[' + arg.name + ']';
|
|
752
|
-
}).join(' ');
|
|
753
|
-
|
|
754
|
-
return pad(cmd._name
|
|
755
|
-
+ (cmd.options.length
|
|
756
|
-
? ' [options]'
|
|
757
|
-
: '') + ' ' + args, 22)
|
|
758
|
-
+ (cmd.description()
|
|
759
|
-
? ' ' + cmd.description()
|
|
760
|
-
: '');
|
|
886
|
+
, commands.map(function(cmd) {
|
|
887
|
+
return pad(cmd[0], width) + ' ' + cmd[1];
|
|
761
888
|
}).join('\n').replace(/^/gm, ' ')
|
|
762
889
|
, ''
|
|
763
890
|
].join('\n');
|
|
@@ -770,17 +897,42 @@ Command.prototype.commandHelp = function(){
|
|
|
770
897
|
* @api private
|
|
771
898
|
*/
|
|
772
899
|
|
|
773
|
-
Command.prototype.helpInformation = function(){
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
900
|
+
Command.prototype.helpInformation = function() {
|
|
901
|
+
var desc = [];
|
|
902
|
+
if (this._description) {
|
|
903
|
+
desc = [
|
|
904
|
+
' ' + this._description
|
|
905
|
+
, ''
|
|
906
|
+
];
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
var cmdName = this._name;
|
|
910
|
+
if(this._alias) {
|
|
911
|
+
cmdName = cmdName + '|' + this._alias;
|
|
912
|
+
}
|
|
913
|
+
var usage = [
|
|
914
|
+
''
|
|
915
|
+
,' Usage: ' + cmdName + ' ' + this.usage()
|
|
916
|
+
, ''
|
|
917
|
+
];
|
|
918
|
+
|
|
919
|
+
var cmds = [];
|
|
920
|
+
var commandHelp = this.commandHelp();
|
|
921
|
+
if (commandHelp) cmds = [commandHelp];
|
|
922
|
+
|
|
923
|
+
var options = [
|
|
924
|
+
' Options:'
|
|
779
925
|
, ''
|
|
780
926
|
, '' + this.optionHelp().replace(/^/gm, ' ')
|
|
781
927
|
, ''
|
|
782
928
|
, ''
|
|
783
|
-
]
|
|
929
|
+
];
|
|
930
|
+
|
|
931
|
+
return usage
|
|
932
|
+
.concat(cmds)
|
|
933
|
+
.concat(desc)
|
|
934
|
+
.concat(options)
|
|
935
|
+
.join('\n');
|
|
784
936
|
};
|
|
785
937
|
|
|
786
938
|
/**
|
|
@@ -789,7 +941,7 @@ Command.prototype.helpInformation = function(){
|
|
|
789
941
|
* @api public
|
|
790
942
|
*/
|
|
791
943
|
|
|
792
|
-
Command.prototype.outputHelp = function(){
|
|
944
|
+
Command.prototype.outputHelp = function() {
|
|
793
945
|
process.stdout.write(this.helpInformation());
|
|
794
946
|
this.emit('--help');
|
|
795
947
|
};
|
|
@@ -800,7 +952,7 @@ Command.prototype.outputHelp = function(){
|
|
|
800
952
|
* @api public
|
|
801
953
|
*/
|
|
802
954
|
|
|
803
|
-
Command.prototype.help = function(){
|
|
955
|
+
Command.prototype.help = function() {
|
|
804
956
|
this.outputHelp();
|
|
805
957
|
process.exit();
|
|
806
958
|
};
|
|
@@ -814,7 +966,7 @@ Command.prototype.help = function(){
|
|
|
814
966
|
*/
|
|
815
967
|
|
|
816
968
|
function camelcase(flag) {
|
|
817
|
-
return flag.split('-').reduce(function(str, word){
|
|
969
|
+
return flag.split('-').reduce(function(str, word) {
|
|
818
970
|
return str + word[0].toUpperCase() + word.slice(1);
|
|
819
971
|
});
|
|
820
972
|
}
|
|
@@ -850,3 +1002,19 @@ function outputHelpIfNecessary(cmd, options) {
|
|
|
850
1002
|
}
|
|
851
1003
|
}
|
|
852
1004
|
}
|
|
1005
|
+
|
|
1006
|
+
/**
|
|
1007
|
+
* Takes an argument an returns its human readable equivalent for help usage.
|
|
1008
|
+
*
|
|
1009
|
+
* @param {Object} arg
|
|
1010
|
+
* @return {String}
|
|
1011
|
+
* @api private
|
|
1012
|
+
*/
|
|
1013
|
+
|
|
1014
|
+
function humanReadableArgName(arg) {
|
|
1015
|
+
var nameOutput = arg.name + (arg.variadic === true ? '...' : '');
|
|
1016
|
+
|
|
1017
|
+
return arg.required
|
|
1018
|
+
? '<' + nameOutput + '>'
|
|
1019
|
+
: '[' + nameOutput + ']'
|
|
1020
|
+
}
|