code: function parseOptions(options, callback) {
    "use strict";
  
    var _ = require('underscore');
    var config = require('./config');
  
    // get the UID and GID that we should run the workers as (allows workers to drop root privileges)
    if (options.u || options.g) {
      if (semver.gte(process.versions.node, '0.12.0')) {
        uidNumber((options.u ? options.u : null), (options.g ? options.g : null), function (err, uid, gid) {
          if (err) {
            Logger.error('Failed to change UID and GID for child processes.');
            Logger.verbose(err.stack || err.message || err);
          } else {
            options.u = uid;
            options.g = gid;
          }
  
          _.extend(config, options);
          callback();
        });
      } else {
        Logger.error('Changing UID and GID is only supported on node versions >= 0.12.0.  Ignoring requested UID and/or GID.');
  
        options.u = '';
        options.g = '';
        
        _.extend(config, options);
        callback();
      }
    } else {
      _.extend(config, options);
      callback();
    }
  }
docs: Parse Options
  
  @private
  @param options