| Leo Repp | 58b9f11 | 2021-11-22 11:57:47 +0100 | [diff] [blame^] | 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 | } |