Initial commit
[yaffs-website] / node_modules / nopt / bin / nopt.js
1 #!/usr/bin/env node
2 var nopt = require("../lib/nopt")
3   , path = require("path")
4   , types = { num: Number
5             , bool: Boolean
6             , help: Boolean
7             , list: Array
8             , "num-list": [Number, Array]
9             , "str-list": [String, Array]
10             , "bool-list": [Boolean, Array]
11             , str: String
12             , clear: Boolean
13             , config: Boolean
14             , length: Number
15             , file: path
16             }
17   , shorthands = { s: [ "--str", "astring" ]
18                  , b: [ "--bool" ]
19                  , nb: [ "--no-bool" ]
20                  , tft: [ "--bool-list", "--no-bool-list", "--bool-list", "true" ]
21                  , "?": ["--help"]
22                  , h: ["--help"]
23                  , H: ["--help"]
24                  , n: [ "--num", "125" ]
25                  , c: ["--config"]
26                  , l: ["--length"]
27                  , f: ["--file"]
28                  }
29   , parsed = nopt( types
30                  , shorthands
31                  , process.argv
32                  , 2 )
33
34 console.log("parsed", parsed)
35
36 if (parsed.help) {
37   console.log("")
38   console.log("nopt cli tester")
39   console.log("")
40   console.log("types")
41   console.log(Object.keys(types).map(function M (t) {
42     var type = types[t]
43     if (Array.isArray(type)) {
44       return [t, type.map(function (type) { return type.name })]
45     }
46     return [t, type && type.name]
47   }).reduce(function (s, i) {
48     s[i[0]] = i[1]
49     return s
50   }, {}))
51   console.log("")
52   console.log("shorthands")
53   console.log(shorthands)
54 }