Blame view

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