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