code: function parseArg() {
    var argv = process.argv.slice()
      , opt = { conf: {} }
      , arg;
  
    function getarg() {
      var arg = argv.shift();
  
      if (arg.indexOf('--') === 0) {
        // e.g. --opt
        arg = arg.split('=');
        if (arg.length > 1) {
          // e.g. --opt=val
          argv.unshift(arg.slice(1).join('='));
        }
        arg = arg[0];
      } else if (arg[0] === '-') {
        if (arg.length > 2) {
          // e.g. -abc
          argv = arg.substring(1).split('').map(function(ch) {
            return '-' + ch;
          }).concat(argv);
          arg = argv.shift();
        } else {
          // e.g. -a
        }
      } else {
        // e.g. foo
      }
  
      return arg;
    }
  
    while (argv.length) {
      arg = getarg();
      switch (arg) {
        case '-p':
        case '--port':
          opt.conf.port = +argv.shift();
          break;
        case '-c':
        case '--config':
          opt.config = argv.shift();
          break;
        case '--path':
          break;
        case '-h':
        case '--help':
          help();
          break;
        case 'production':
        case '--production':
        case '-d':
        case '--daemonize':
          daemonize();
          break;
        case '-k':
        case '--kill':
          killall();
          break;
        default:
          break;
      }
    }
  
    return opt;
  }
docs: Parse Arguments