nopt.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. console.log("parsed", parsed)
  34. if (parsed.help) {
  35. console.log("")
  36. console.log("nopt cli tester")
  37. console.log("")
  38. console.log("types")
  39. console.log(Object.keys(types).map(function M (t) {
  40. var type = types[t]
  41. if (Array.isArray(type)) {
  42. return [t, type.map(function (type) { return type.name })]
  43. }
  44. return [t, type && type.name]
  45. }).reduce(function (s, i) {
  46. s[i[0]] = i[1]
  47. return s
  48. }, {}))
  49. console.log("")
  50. console.log("shorthands")
  51. console.log(shorthands)
  52. }