now-flow
Version:
Add deployment workflows to Zeit now
47 lines (39 loc) • 1.21 kB
JavaScript
const debug = require('debug')('now:config:set')
const error = require('../util/output/error')
const success = require('../util/output/success')
const param = require('../util/output/param')
const hp = require('../util/humanize-path')
const { writeToConfigFile, getConfigFilePath } = require('../util/config-files')
const CONFIGS = new Map([
[
'defaultProvider',
value => {
const providers = require('../providers')
return [providers.hasOwnProperty(value), value]
}
],
[
'includeScheme',
value => {
const isValid = ['true', 'false', true, false].includes(value)
return [isValid, value === 'true' || value === true]
}
]
])
module.exports = function set(ctx) {
const [name, value] = ctx.argv.slice(4)
debug('setting config %s to %s', name, value)
if (!CONFIGS.has(name)) {
console.error(error(`Unexpected config name: ${name}`))
return 1
}
const validate = CONFIGS.get(name)
const [isValid, finalValue] = validate(value)
if (!isValid) {
console.error(error(`Unexpected config value for ${name}: ${value}`))
return 1
}
ctx.config[name] = finalValue
writeToConfigFile(ctx.config)
console.log(success(`Config saved in ${param(hp(getConfigFilePath()))}`))
}