#!/opt/local/bin/node
var nopt = require('../lib/nopt')
var path = require('path')
var types = { num: Number,
  bool: Boolean,
  help: Boolean,
  list: Array,
  'num-list': [Number, Array],
  'str-list': [String, Array],
  'bool-list': [Boolean, Array],
  str: String,
  clear: Boolean,
  config: Boolean,
  length: Number,
  file: path,
}
var shorthands = { s: ['--str', 'astring'],
  b: ['--bool'],
  nb: ['--no-bool'],
  tft: ['--bool-list', '--no-bool-list', '--bool-list', 'true'],
  '?': ['--help'],
  h: ['--help'],
  H: ['--help'],
  n: ['--num', '125'],
  c: ['--config'],
  l: ['--length'],
  f: ['--file'],
}
var parsed = nopt(types
  , shorthands
  , process.argv
  , 2)

console.log('parsed', parsed)

if (parsed.help) {
  console.log('')
  console.log('nopt cli tester')
  console.log('')
  console.log('types')
  console.log(Object.keys(types).map(function M (t) {
    var type = types[t]
    if (Array.isArray(type)) {
      return [t, type.map(function (mappedType) {
        return mappedType.name
      })]
    }
    return [t, type && type.name]
  }).reduce(function (s, i) {
    s[i[0]] = i[1]
    return s
  }, {}))
  console.log('')
  console.log('shorthands')
  console.log(shorthands)
}
