mirror of
https://github.com/nodejs/node.git
synced 2025-05-17 22:02:33 +00:00

PR-URL: https://github.com/nodejs/node/pull/42122 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Mestery <mestery@protonmail.com> Reviewed-By: Danielle Adams <adamzdanielle@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>
33 lines
837 B
JavaScript
33 lines
837 B
JavaScript
const git = require('@npmcli/git')
|
|
const log = require('proc-log')
|
|
|
|
// returns true if it's cool to do git stuff
|
|
// throws if it's unclean, and not forced.
|
|
module.exports = async opts => {
|
|
const { force } = opts
|
|
let hadError = false
|
|
const clean = await git.isClean(opts).catch(er => {
|
|
if (er.code === 'ENOGIT') {
|
|
log.warn(
|
|
'version',
|
|
'This is a Git checkout, but the git command was not found.',
|
|
'npm could not create a Git tag for this release!'
|
|
)
|
|
hadError = true
|
|
// how can merges be real if our git isn't real?
|
|
return true
|
|
} else {
|
|
throw er
|
|
}
|
|
})
|
|
|
|
if (!clean) {
|
|
if (!force) {
|
|
throw new Error('Git working directory not clean.')
|
|
}
|
|
log.warn('version', 'Git working directory not clean, proceeding forcefully.')
|
|
}
|
|
|
|
return !hadError
|
|
}
|