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