#!/usr/bin/env node var exists = require('fs').existsSync, program = require('commander'), resolve = require('path').resolve, spawn = require('child_process').spawn, config = require('nconf'), fs = require("fs"), path = require("path"), logger = require('../lib/logger'); /** * Usage. */ program .version(require('../package').version) .usage(' [options]'); /** * Help. */ program.on('--help', function(){ console.log(' Commands:'); console.log(); console.log(' bstalk --version Print version'); console.log(' bstalk config Create config file'); console.log(' bstalk openconfig Open config file for edition'); console.log(' bstalk repos Display list of all repositories'); console.log(' bstalk deploy [comment] Deploy environment on '); console.log(); }); /** * Parse. */ program.parse(process.argv); if (!program.args.length) program.help(); /** * Settings. */ var cmd = program.args[0]; var args = process.argv.slice(3); var bin = resolve(__dirname, 'bstalk-' + cmd); if (!exists(bin)) { logger.log('There is no `%s` command.', cmd); console.log(); program.help(); } /** * Spawn a new, forwarded child process for the subcommand. */ var child = spawn(bin, args, { stdio: 'inherit' }); child.on('close', process.exit.bind(process));