code: function exec(files, options) {
      var self = this;
      files = files || ['.'];
      files = !Array.isArray(files) ? [files] : files;
      options = options || {};
  
      // If any version of --no-create is passed, change it to false.
      options.create = options.create === true ? false : options.create;
  
      // If --time is passed, ensure a valid param is called in
      // and map it to -a or -m, as this is the equivalent of these.
      // Throw an error if nothing valid passed.
      if (options.time) {
        var a = ['access', 'atime', 'use'];
        var m = ['modify', 'mtime'];
        var opt = a.indexOf(options.time) > -1 ? 'a' : m.indexOf(options.time) > -1 ? 'm' : undefined;
        if (!opt) {
          var error = 'touch: invalid argument "' + options.time + '" for "--time"\n' + 'Valid arguments are:\n' + '  - "atime", "access", "use"\n' + '  - "mtime", "modify"\n' + 'Try \'touch --help\' for more information.';
          // I think this is the stupidest thing
          // I've ever written.
          try {
            throw new Error(error);
          } catch (e) {
            return touch.error.call(self, e);
          }
        } else {
          options[opt] = true;
        }
      }
  
      try {
        var err = false;
        for (var i = 0; i < files.length; ++i) {
          try {
            touch.file(files[i], options);
          } catch (e) {
            err = e;
            break;
          }
        }
        if (err) {
          return touch.error.call(self, err);
        }
        return 0;
      } catch (e) {
        return touch.error.call(self, e);
      }
    }
docs: Main command execution.
  
  @param {Object} args
  @return {Object} { status, stdout }
  @api public