fix(restart): correctly prevent double npm publish run

This commit is contained in:
Stephan Bönnemann
2015-02-02 17:57:06 +01:00
parent f7faebb175
commit b39fecbdc2
3 changed files with 24 additions and 4 deletions
+15 -1
View File
@@ -2,7 +2,7 @@
var spawn = require('child_process').spawn
module.exports = function () {
var exports = module.exports = function (cb) {
// npm loads package.json data before running the `prepublish` hook
// changing the version on `prepublish` has no effect
// see https://github.com/npm/npm/issues/7118
@@ -10,7 +10,21 @@ module.exports = function () {
// the package.json is then loaded again and the correct version will be published
var child = spawn('npm', ['publish', '--semantic-release-rerun'])
var handler = exports.handleCloseAndExit.bind(null, cb)
child.stdout.pipe(process.stdout)
child.stderr.pipe(process.stderr)
child.on('close', handler)
child.on('exit', handler)
child.on('error', cb)
}
exports.handleCloseAndExit = function (cb, code, signal) {
if (code === 0) return cb(null)
cb({
code: code,
signal: signal,
message: 'npm publish failed'
})
}