#!/usr/bin/env node require('lego-colorful').colorful(); var program = require('commander'); var legorc = require('legorc'); var spawn = require('win-spawn'); var exists = require('fs').existsSync; var readFile = require('fs').readFileSync; program .usage(' [key] [value]'); program .option('set ', 'set a key') .option('get ', 'get a key') .option('delete ', 'delete a key') .option('list', 'show your configuration') .option('edit', 'edit ~/.lego/legorc with your favorite editor'); program.on('--help', function() { console.log(' Examples:'.to.bold.blue.color); console.log(); console.log(' $', 'lego config'.to.magenta.color, 'set registry http://lego.imweb.io'); console.log(' $', 'lego config'.to.magenta.color, 'get registry'); console.log(' $', 'lego config'.to.magenta.color, 'delete auth'); console.log(' $', 'lego config'.to.magenta.color, 'list'); console.log(' $', 'lego config'.to.magenta.color, 'edit'); console.log(); }); program.parse(process.argv); var val = program.args[0]; if (program.set && val) { legorc.set(program.set, val); } else if (program.get) { console.log(legorc.get(program.get)); } else if (program.delete) { var data = legorc.parse(); delete data[program.delete]; legorc.write(data); } else if (program.list) { console.log(exists(legorc.legorcfile) ? readFile(legorc.legorcfile, 'utf-8') : ''); } else if (program.edit) { var editor = process.env.EDITOR || 'vim'; spawn(editor, [legorc.legorcfile], {stdio: 'inherit'}); } else { program.help(); }