@stoked-cenv/cli
Version:
A well considered cli and Node.js library for helping manage application, infrastructure, and configuration management.
253 lines (252 loc) • 9.98 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.DeployCommand = void 0;
const nest_commander_1 = require("nest-commander");
const lib_1 = require("@stoked-cenv/lib");
const base_command_1 = require("./base.command");
let DeployCommand = class DeployCommand extends base_command_1.BaseCommand {
constructor() {
super();
this.config.deploymentMode = lib_1.ProcessMode.DEPLOY;
this.config.packagesRequired = true;
this.config.allowRootPackage = false;
this.config.allowUI = true;
this.config.frozenParams = true;
}
parseSkipBuild(val) {
return val;
}
parseParameters(val) {
return val;
}
parseStack(val) {
return val;
}
parseDocker(val) {
return val;
}
parseCenv(val) {
return val;
}
parseForce(val) {
return val;
}
parseTest(val) {
return val;
}
parseVerify(val) {
return val;
}
parseKey(val) {
return val;
}
parseAddKeyAccount(val) {
return val;
}
parseLogLevel(val) {
return val;
}
parseBootstrap(val) {
return val;
}
parseDependencies(val) {
return val;
}
parseStrictVersions(val) {
return val;
}
parseCli(val) {
return val;
}
parseUi(val) {
return val;
}
/*
@Option({
flags: '-fe, --fail-on-error',
description: 'Mark the package as failed if any commands have errors'
})
parseFailOnError(val: boolean): boolean {
return val;
}
*/
async runCommand(params, options, packages) {
if ((options === null || options === void 0 ? void 0 : options.verify) || (options === null || options === void 0 ? void 0 : options.cenv) || (options === null || options === void 0 ? void 0 : options.key) || (options === null || options === void 0 ? void 0 : options.addKeyAccount)) {
packages = [];
}
try {
if (options === null || options === void 0 ? void 0 : options.cenv) {
await lib_1.Cenv.deployCenv(options === null || options === void 0 ? void 0 : options.force);
return;
}
if (options === null || options === void 0 ? void 0 : options.key) {
await (0, lib_1.createKey)();
return;
}
else if (options === null || options === void 0 ? void 0 : options.addKeyAccount) {
await (0, lib_1.addKeyAccount)(options === null || options === void 0 ? void 0 : options.addKeyAccount);
return;
}
if ((packages && (packages === null || packages === void 0 ? void 0 : packages.length) > 0) || ((packages === null || packages === void 0 ? void 0 : packages.length) === 1 && packages[0].local)) {
lib_1.Package.loading = false;
await lib_1.Deployment.Deploy(packages, options);
}
else if (!(options === null || options === void 0 ? void 0 : options.verify)) {
await lib_1.Cenv.deployCenv(true);
}
else if (options === null || options === void 0 ? void 0 : options.verify) {
const verifyRes = await lib_1.Cenv.verifyCenv(false);
process.exit(verifyRes ? 0 : 67);
}
}
catch (e) {
lib_1.CenvLog.single.catchLog(e);
}
}
};
exports.DeployCommand = DeployCommand;
__decorate([
(0, nest_commander_1.Option)({
flags: '-sb, --skip-build', description: `Skip build.`,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean]),
__metadata("design:returntype", Boolean)
], DeployCommand.prototype, "parseSkipBuild", null);
__decorate([
(0, nest_commander_1.Option)({
flags: '-p, --parameters', description: `Only run parameter related commands.`,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean]),
__metadata("design:returntype", Boolean)
], DeployCommand.prototype, "parseParameters", null);
__decorate([
(0, nest_commander_1.Option)({
flags: '-st, --stack', description: `Only run parameter related commands.`,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean]),
__metadata("design:returntype", Boolean)
], DeployCommand.prototype, "parseStack", null);
__decorate([
(0, nest_commander_1.Option)({
flags: '-D, --docker', description: `Only run docker related commands.`,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean]),
__metadata("design:returntype", Boolean)
], DeployCommand.prototype, "parseDocker", null);
__decorate([
(0, nest_commander_1.Option)({
flags: '-cenv, --cenv', description: `Deploy cenv to aws account.`,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean]),
__metadata("design:returntype", Boolean)
], DeployCommand.prototype, "parseCenv", null);
__decorate([
(0, nest_commander_1.Option)({
flags: '-f, --force', description: `Force an action.`,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean]),
__metadata("design:returntype", Boolean)
], DeployCommand.prototype, "parseForce", null);
__decorate([
(0, nest_commander_1.Option)({
flags: '-t, --test', description: `Test an action.`,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean]),
__metadata("design:returntype", Boolean)
], DeployCommand.prototype, "parseTest", null);
__decorate([
(0, nest_commander_1.Option)({
flags: '-v, --verify', description: `Verify the cenv installation on an environment.`,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean]),
__metadata("design:returntype", Boolean)
], DeployCommand.prototype, "parseVerify", null);
__decorate([
(0, nest_commander_1.Option)({
flags: '-k, --key', description: 'Use a custom key',
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean]),
__metadata("design:returntype", Boolean)
], DeployCommand.prototype, "parseKey", null);
__decorate([
(0, nest_commander_1.Option)({
flags: '-aka, --add-key-account <account>', description: 'Add an account to have access to the curb key',
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", String)
], DeployCommand.prototype, "parseAddKeyAccount", null);
__decorate([
(0, nest_commander_1.Option)({
flags: '-ll, --log-level, <logLevel>', description: `Logging mode`,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", String)
], DeployCommand.prototype, "parseLogLevel", null);
__decorate([
(0, nest_commander_1.Option)({
flags: '-b, --bootstrap', description: `Bootstrap cdk under the hood before we run an install.`,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean]),
__metadata("design:returntype", Boolean)
], DeployCommand.prototype, "parseBootstrap", null);
__decorate([
(0, nest_commander_1.Option)({
flags: '-d, --dependencies',
description: `This flag uses the settings in the deploy package.json for dockerDependencies and componentDependencies. It will build any docker dependencies listed and install and component dependencies listed before installing the specificed package.`,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean]),
__metadata("design:returntype", Boolean)
], DeployCommand.prototype, "parseDependencies", null);
__decorate([
(0, nest_commander_1.Option)({
flags: '-sv, --strict-versions', description: `Do not create new docker containers if the current version number exists.`,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean]),
__metadata("design:returntype", Boolean)
], DeployCommand.prototype, "parseStrictVersions", null);
__decorate([
(0, nest_commander_1.Option)({
flags: '-cli, --cli', description: 'Use the cli',
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean]),
__metadata("design:returntype", Boolean)
], DeployCommand.prototype, "parseCli", null);
__decorate([
(0, nest_commander_1.Option)({
flags: '-ui, --user-interface', description: 'Use the ui',
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean]),
__metadata("design:returntype", Boolean)
], DeployCommand.prototype, "parseUi", null);
exports.DeployCommand = DeployCommand = __decorate([
(0, nest_commander_1.Command)({
name: 'deploy', arguments: '[...applications]', description: 'Deploy infrastructure', aliases: ['i', 'install'],
}),
__metadata("design:paramtypes", [])
], DeployCommand);
//# sourceMappingURL=deploy.command.js.map