#!/usr/bin/env node var exists = require('fs').existsSync, program = require('commander'), resolve = require('path').resolve, spawn = require('cross-spawn'), config = require('nconf'), fs = require("fs"), path = require("path"), logger = require('../lib/logger'); /* |-------------------------------------------------------------------------- | 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 create [color] Create a git with specified [color]'); console.log(' bstalk envs Displays configured environments for '); console.log(' bstalk deploy [comment] Deploy environment last revision on '); console.log(); }); /* |-------------------------------------------------------------------------- | Program | Forward to sub commands (git style) | |-------------------------------------------------------------------------- */ program .version(require('../package').version) .usage(' [options]'); program.parse(process.argv); if (!program.args.length) program.help(); 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));