• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env node
2var 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
34console.log("parsed", parsed)
35
36if (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}
55