lib/batter.js
function getOptions(opts) {
    opts = opts || {};

    // command line arguments override options
    _.extend(opts, argv);
    delete opts.$0;
    delete opts._;

    // these values are used in multiple tasks, so set defaults here
    opts.unitTestCode = opts.unitTestCode || 'test/unit/**/*.js';
    opts.unitTargetCode = opts.unitTargetCode || 'lib/**/*.js';
    opts.testDir = opts.testDir || 'test';
    opts.rootDir = opts.rootDir || process.cwd();
    opts.targetDir = opts.targetDir || (opts.rootDir + '/lib');
    opts.tasksets = _.extend({ 'default': ['lint', 'test'] }, opts.tasksets);

    return opts;
}
function getOptions(opts) {
    opts = opts || {};

    // command line arguments override options
    _.extend(opts, argv);
    delete opts.$0;
    delete opts._;

    // these values are used in multiple tasks, so set defaults here
    opts.unitTestCode = opts.unitTestCode || 'test/unit/**/*.js';
    opts.unitTargetCode = opts.unitTargetCode || 'lib/**/*.js';
    opts.testDir = opts.testDir || 'test';
    opts.rootDir = opts.rootDir || process.cwd();
    opts.targetDir = opts.targetDir || (opts.rootDir + '/lib');
    opts.tasksets = _.extend({ 'default': ['lint', 'test'] }, opts.tasksets);

    return opts;
}
Set options defaults that are used for batter tasks
@param opts Object with options for batter
@returns {*|{}}