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