@commercelayer/cli
Version:
43 lines (42 loc) • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@oclif/core");
const config_1 = require("../../config");
const util_1 = require("util");
const cli_core_1 = require("@commercelayer/cli-core");
class ConfigSet extends core_1.Command {
static description = 'set a CLI configuration parameter';
static hidden = true;
static flags = {
// help: flags.help({char: 'h'}),
force: core_1.Flags.boolean({
char: 'F',
required: false, // checked programmatically later
hidden: true,
description: 'mandatory flag to avoid unintentional config changes',
}),
};
static args = {
param: core_1.Args.string({ name: 'param', required: true, description: 'configuration parameter name' }),
value: core_1.Args.string({ name: 'value', required: true, description: 'value to be saved in configuration file' }),
};
async run() {
const { args, flags } = await this.parse(ConfigSet);
const param = args.param;
const value = args.value;
if ((0, config_1.paramExists)(param)) {
const paramKey = config_1.ConfigParams[param];
if ((0, config_1.paramEditable)(paramKey)) {
if (!flags.force)
this.error(`To avoid unintentional changes to CLI configuration, please use the ${cli_core_1.clColor.cli.flag('--force (-F)')} flag to force setting save`);
(0, config_1.configParam)(paramKey, value);
this.log(`\n${cli_core_1.clColor.table.key.blueBright(param)} = ${(0, util_1.inspect)((0, config_1.configParam)(paramKey), false, null, true)}\n`);
}
else
this.error(`Readonly configuration param: ${cli_core_1.clColor.msg.error(param)}`);
}
else
this.error(`Invalid configuration param: ${cli_core_1.clColor.msg.error(param)}`);
}
}
exports.default = ConfigSet;