Code coverage report for lib/cli.js

Statements: 100% (23 / 23)      Branches: 100% (11 / 11)      Functions: 100% (4 / 4)      Lines: 100% (23 / 23)      Ignored: none     

All files » lib/ » cli.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 761 1 1 1 1 1 1 1   1   4     4 1 1 1 1 1 1           3             1   1                                                                       1     1 1
var cli       = require('bagofcli');
var commander = require('commander');
var Jenkins   = require('./jenkins');
var jenkins   = require('./cli/jenkins');
var job       = require('./cli/job');
var text      = require('bagoftext');
var _url      = require('url');
var view      = require('./cli/view');
 
function __exec(args, cb) {
  // use url flag or JENKINS_URL environment variable if provided
  var url = (args && args.parent) ? (args.parent.url || process.env.JENKINS_URL) : undefined;
 
  // if URL value and interactive flag are specified, then prompt for authentication details
  if (url && args.parent && args.parent.interactive) {
    commander.prompt(text.__('Username: '), function (user) {
      commander.password(text.__('Password: '), function (pass) {
        var parsedUrl = _url.parse(url);
        parsedUrl.auth = user + ':' + pass;
        url = _url.format(parsedUrl);
        cb(new Jenkins(url));
      });
    });
 
  // otherwise fallback to default URL
  } else {
    cb(new Jenkins(url));
  }
}
 
/**
 * Execute Nestor CLI.
 */
function exec() {
 
  var actions = {
    commands: {
      'dashboard'        : { action: jenkins.dashboard(__exec) },
      'discover'         : { action: jenkins.discover(__exec) },
      'executor'         : { action: jenkins.executor(__exec) },
      'feed'             : { action: jenkins.feed(__exec) },
      'queue'            : { action: jenkins.queue(__exec) },
      'ver'              : { action: jenkins.version(__exec) },
      'create'           : { action: job.create(__exec) },
      'create-job'       : { action: job.create(__exec) },
      'job'              : { action: job.read(__exec) },
      'read-job'         : { action: job.read(__exec) },
      'last'             : { action: job.readLatest(__exec) },
      'update'           : { action: job.update(__exec) },
      'update-job'       : { action: job.update(__exec) },
      'delete'           : { action: job.delete(__exec) },
      'delete-job'       : { action: job.delete(__exec) },
      'build'            : { action: job.build(__exec) },
      'build-job'        : { action: job.build(__exec) },
      'stop'             : { action: job.stop(__exec) },
      'stop-job'         : { action: job.stop(__exec) },
      'console'          : { action: job.console(__exec) },
      'enable'           : { action: job.enable(__exec) },
      'enable-job'       : { action: job.enable(__exec) },
      'disable'          : { action: job.disable(__exec) },
      'disable-job'      : { action: job.disable(__exec) },
      'copy'             : { action: job.copy(__exec) },
      'copy-job'         : { action: job.copy(__exec) },
      'config'           : { action: job.fetchConfig(__exec) },
      'fetch-job-config' : { action: job.fetchConfig(__exec) },
      'create-view'      : { action: view.create(__exec) },
      'update-view'      : { action: view.update(__exec) },
      'fetch-view-config': { action: view.fetchConfig(__exec) }
    }
  };
 
  cli.command(__dirname, actions);
}
 
exports.exec   = exec;
exports.__exec = __exec;