docs: function (argv) {
      if (typeof argv == "string") {
        argv = argv.split(" ");
      }
      var opts = {}, params = [];
      argv.forEach(function(arg) {
        var m = arg.match(/^-{0,2}(.+?[^\\])=(.*)$/);
        if (m == null) { // No match
          arg = unescape(arg, '=');
          try {
            arg = JSON.parse(arg);
          } catch (e) {} // don't care
          params.push(arg);
          return;
        }
        var key = unescape(m[1], "="), value = m[2];
        try {
          // Parses out numbers, booleans, arrays, objects, etc, but if the param was given as "field=" then nullify
          if (value == "") value = null;
          else value = JSON.parse(value);
        } catch (e) {} // don't care
  
        val(opts, key, value);
      });
  
      return { opts: opts, params: params };
    }