Code coverage report for liberate-me/bin/liberate-me.js

Statements: 80.77% (21 / 26)      Branches: 75% (3 / 4)      Functions: 75% (3 / 4)      Lines: 80.77% (21 / 26)     

All files » liberate-me/bin/ » liberate-me.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    1                   1 4       4   4   1 1 1     4 3     3 2 2     1 1     1 1     1       1 1                               1      
#!/usr/bin/env node
 
var metadata = require('./../package.json'),
    fs = require('fs'),
    mkdirp = require('mkdirp'),
    path = require('path'),
    async = require('async'),
    program = require('commander'),
    config,
    args,
    output_directory;
 
module.exports = function(argv) {
  program
    .usage('[options] <config.json> <output directory>')
    .version(metadata.version)
    .option('-v, --verbose', 'More output');
  program._name = "liberate-me";
    
  program.command('dump-config')
    .action(function() {
      var conffile = path.resolve(__dirname, '..', 'libme.json.sample');
      console.log(fs.readFileSync(conffile, {encoding: "utf-8"}));
      process.exit(0);
    });
  
  program.parse(argv);
  args = program.args;
  
  // check for number of arguments
  if (args.length !== 2) {
    console.log("Error: Please pass correct number of arguments.");
    program.help();
  } 
  
  config = require(path.resolve(process.cwd(), args[0]));
  output_directory = path.resolve(process.cwd(), args[1]);
  
  // create output directory if it doesn't exist
  console.info("Creating directory %s", output_directory);
  mkdirp(output_directory, console.error);
  
  //console.debug("Output directory: %s", output_directory);
  module.exports.launch_services(config, output_directory);
  
};
 
module.exports.launch_services = function launch_services(config, output_directory) {
  async.each(config.enabled, function(service_name) {
    // TODO: handle the case when service_name is defined
    var service = require('../services/' + service_name + '.js'),
        service_directory = path.resolve(output_directory, service_name);
  
    //console.debug("Configuration for %s: %s", service_name, config);
    console.info("Fetching data from %s", service_name);
  
    mkdirp(service_directory, console.error);
  
    // TODO: handle the case when service_name is not in config
    service(config.services[service_name], service_directory);
  });
};
 
// run if standalone
Iif (require.main === module) {
  module.exports(process.argv);
}