UNPKG

1.3 kBPlain TextView Raw
1#!/usr/bin/env node
2
3'use strict';
4
5var options = require('yargs')
6 .boolean('force-in-publish')
7 .default('force-in-publish', false)
8 .describe('force-in-publish', 'force "in publish" check to pass')
9 .help().alias('help', 'h')
10 .version(require('../package.json').version).alias('version', 'v')
11 .strict()
12 .wrap(null)
13 .argv;
14
15// eslint-disable-next-line global-require
16var inPublish = options['force-in-publish'] || require('in-publish').inPublish();
17var inInstall = require('in-publish').inInstall();
18
19if (!inInstall && !inPublish) {
20 console.warn('Detected non-install and non-publish: exiting.');
21}
22if (!inPublish) {
23 process.exit(0);
24}
25
26var path = require('path');
27
28var pkg = require(path.join(process.cwd(), 'package.json'));
29var name = pkg.name;
30if (!name) {
31 console.error('Error: package name is required');
32 process.exit(1);
33}
34
35var version = pkg.version;
36var semver = require('semver');
37if (!semver.valid(version)) {
38 console.error('Error: package version "' + version + '" is invalid.');
39 process.exit(2);
40}
41
42var getLatestError = require('../getLatestError');
43getLatestError(name, version, options, function (errors, messages) {
44 if (!errors) {
45 console.log([].concat(messages, 'Publish away!').join('\n'));
46 process.exit(0);
47 }
48 console.error(errors.join('\n'));
49 process.exit(3);
50});