#!/usr/bin/env node require('lego-colorful').colorful(); var program = require('commander'); var inquirer = require('inquirer'); var log = require('lego-log'); var client = require('../lib/client'); var iduri = require('../lib/sdk/iduri'); program .usage('[options] name[@version]') .option('-r, --registry ', 'registry url of yuan server') .option('--verbose', 'show more log') .option('--no-color', 'disable colorful print'); program.on('--help', function() { console.log(); console.log(' ' + 'Examples:'.to.bold.blue); console.log(); console.log(' $ ' + 'lego unpublish'.to.magenta.color + ' jquery'); console.log(' $ ' + 'lego unpublish'.to.magenta.color + ' jquery' + '@1.8.2'.to.cyan.color); console.log(); }); program.parse(process.argv); if (!program.args[0]) { process.stdout.write(program.helpInformation()); program.emit('--help'); process.exit(); } console.log(); log.config(program); var pkg = iduri.resolve(program.args[0]); if (!pkg) { log.error('error', 'invalid module name'); process.exit(2); } if (!pkg.version) { confirm(function() { unpublish(); }); } else { unpublish(); } function unpublish() { client.unpublish(pkg, { registry: program.registry }, function(err) { if (err) { console.log(); log.error('exit', err.message); console.log(); process.exit(2); } var version = pkg.version ? '@' + pkg.version : ''; console.log(); log.info('unpublished', (pkg.name + version).to.green.color); console.log(); }); } function confirm(callback) { inquirer.prompt({ type: 'confirm', name: 'sure', message: 'are you sure to delete all versions?', default: false }, function(answers) { if (answers.sure) { callback(); } else { console.log(); process.exit(); } }); }