npub
Version:
publishing tool for your node projects hosted on github
73 lines (61 loc) • 1.82 kB
JavaScript
// Generated by CoffeeScript 1.9.1
var argv, cli, clone, directory, log, minimist, npub, packageJson, publishVersion, semver;
log = require('./log');
npub = require('./index');
minimist = require('minimist');
semver = require('semver');
clone = function(obj) {
return JSON.parse(JSON.stringify(obj || {}));
};
publishVersion = function(str, currentVersion) {
var version;
if (str == null) {
log.error('<version> required for command: npub publish <version>');
process.exit(2);
}
version = (function() {
switch (str) {
case "patch":
case "minor":
case "major":
return semver.inc(currentVersion, str);
default:
return semver.valid(str);
}
})();
if (!version) {
log.error("'" + version + "' is invalid.");
process.exit(2);
}
return version;
};
cli = function(argv, directory, packageJson) {
var command, config, npubPackageJson, testCommand, version;
if (argv.v || argv.version) {
npubPackageJson = require('../package.json');
log(npubPackageJson.version);
return process.exit(0);
}
command = argv._[0];
config = clone(packageJson.publishConfig);
switch (command) {
case 'prep':
return npub.prep(directory, log, config);
case 'publish':
version = publishVersion(argv._[1], packageJson.version);
testCommand = argv.t || argv.test;
return npub.publish(directory, log, config, version, testCommand);
case 'verify':
return npub.verify(directory, function(err) {
if (err) {
return process.exit(2);
}
});
default:
return log.error("invalid command: \"" + command + "\"");
}
};
argv = minimist(process.argv.slice(2));
directory = process.cwd();
packageJson = require(directory + "/package.json");
cli(argv, directory, packageJson);