nopt.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/usr/bin/env node
  2. var 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. console.log("parsed", parsed)
  31. if (parsed.help) {
  32. console.log("")
  33. console.log("nopt cli tester")
  34. console.log("")
  35. console.log("types")
  36. console.log(Object.keys(types).map(function M (t) {
  37. var type = types[t]
  38. if (Array.isArray(type)) {
  39. return [t, type.map(function (type) { return type.name })]
  40. }
  41. return [t, type && type.name]
  42. }).reduce(function (s, i) {
  43. s[i[0]] = i[1]
  44. return s
  45. }, {}))
  46. console.log("")
  47. console.log("shorthands")
  48. console.log(shorthands)
  49. }