1 |
|
2 | void function () {
|
3 | var argv, cli, clone, directory, log, minimist, npub, packageJson, publishVersion, semver;
|
4 | log = require('./log');
|
5 | npub = require('./index');
|
6 | minimist = require('minimist');
|
7 | semver = require('semver');
|
8 | clone = function (obj) {
|
9 | return JSON.parse(JSON.stringify(obj || {}));
|
10 | };
|
11 | publishVersion = function (str, currentVersion) {
|
12 | var version;
|
13 | if (!(null != str)) {
|
14 | log.error('<version> required for command: npub publish <version>');
|
15 | process.exit(2);
|
16 | }
|
17 | version = function () {
|
18 | switch (str) {
|
19 | case 'patch':
|
20 | case 'minor':
|
21 | case 'major':
|
22 | return semver.inc(currentVersion, str);
|
23 | default:
|
24 | return semver.valid(str);
|
25 | }
|
26 | }.call(this);
|
27 | if (!version) {
|
28 | log.error("'" + version + "' is invalid.");
|
29 | process.exit(2);
|
30 | }
|
31 | return version;
|
32 | };
|
33 | cli = function (argv, directory, packageJson) {
|
34 | var command, config, testCommand, version;
|
35 | command = argv._[0];
|
36 | config = clone(packageJson.publishConfig);
|
37 | switch (command) {
|
38 | case 'prep':
|
39 | return npub.prep(directory, log, config);
|
40 | case 'publish':
|
41 | version = publishVersion(argv._[1], packageJson.version);
|
42 | testCommand = argv.t || argv.test;
|
43 | return npub.publish(directory, log, config, version, testCommand);
|
44 | case 'verify':
|
45 | return npub.verify(directory, function (err) {
|
46 | if (err)
|
47 | return process.exit(2);
|
48 | });
|
49 | default:
|
50 | return log.error('invalid command: "' + command + '"');
|
51 | }
|
52 | };
|
53 | argv = minimist(process.argv.slice(2));
|
54 | directory = process.cwd();
|
55 | packageJson = require('' + directory + '/package.json');
|
56 | cli(argv, directory, packageJson);
|
57 | }.call(this);
|