2020-07-23 11:39:22 -07:00
|
|
|
const Log = require('./logging')
|
|
|
|
const { spawnSync } = require('child_process')
|
|
|
|
|
|
|
|
const getNPMConfig = (path) => {
|
|
|
|
const key = path.join('_').replace('-', '_')
|
|
|
|
const npm_prefix = 'npm_config_'
|
|
|
|
const package_config_prefix = 'npm_package_config_'
|
|
|
|
const package_prefix = 'npm_package_'
|
|
|
|
return process.env[npm_prefix + key] ||
|
|
|
|
process.env[package_config_prefix + key] ||
|
2021-11-26 10:49:39 -05:00
|
|
|
process.env[package_prefix + key]
|
2016-11-09 21:02:49 -07:00
|
|
|
}
|
|
|
|
|
2020-07-23 11:39:22 -07:00
|
|
|
const getProjectVersion = (projectName) => {
|
|
|
|
return getNPMConfig(['projects', projectName, 'tag']) || getNPMConfig(['projects', projectName, 'branch'])
|
2016-11-09 21:02:49 -07:00
|
|
|
}
|
|
|
|
|
2020-07-23 11:39:22 -07:00
|
|
|
const run = (cmd, args = [], options = {}) => {
|
|
|
|
const { continueOnFail, ...cmdOptions } = options
|
|
|
|
Log.command(cmdOptions.cwd, cmd, args)
|
|
|
|
const prog = spawnSync(cmd, args, cmdOptions)
|
|
|
|
if (prog.status !== 0) {
|
|
|
|
if (!continueOnFail) {
|
|
|
|
console.log(prog.stdout && prog.stdout.toString())
|
|
|
|
console.error(prog.stderr && prog.stderr.toString())
|
|
|
|
process.exit(1)
|
|
|
|
}
|
2020-04-20 14:34:29 -07:00
|
|
|
}
|
2020-07-23 11:39:22 -07:00
|
|
|
return prog
|
2020-04-20 14:34:29 -07:00
|
|
|
}
|
|
|
|
|
2020-07-23 11:39:22 -07:00
|
|
|
const runGit = (repoPath, gitArgs, continueOnFail = false) => {
|
|
|
|
let prog = run('git', gitArgs, { cwd: repoPath, continueOnFail })
|
2019-02-11 12:59:00 +09:00
|
|
|
|
2020-07-23 11:39:22 -07:00
|
|
|
if (prog.status !== 0) {
|
|
|
|
return null
|
|
|
|
} else {
|
|
|
|
return prog.stdout.toString().trim()
|
2016-11-27 19:29:59 -07:00
|
|
|
}
|
2016-11-09 21:02:49 -07:00
|
|
|
}
|
|
|
|
|
2020-07-23 11:39:22 -07:00
|
|
|
module.exports = {
|
|
|
|
getNPMConfig,
|
|
|
|
getProjectVersion,
|
|
|
|
run,
|
|
|
|
runGit
|
|
|
|
}
|