@voximplant/voxengine-ci
Version:
Manage Voximplant Platform `applications`, `rules` and `scenarios` from your own environment
65 lines (64 loc) • 2.53 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const process_1 = require("process");
const commander_1 = require("commander");
const chalk_1 = __importDefault(require("chalk"));
const application_module_1 = require("../lib/modules/application.module");
commander_1.program
.command('init')
.option('--force')
.action(async ({ force }) => {
const application = new application_module_1.ApplicationModule();
await application.init();
if (force) {
await application.projectCleanup();
}
await application.projectInit();
});
commander_1.program
.command('upload')
.option('--force')
.option('--dry-run')
.option('--application-name <name>')
.option('--application-id <id>', '', (value) => Number(value))
.option('--rule-name <name>')
.option('--rule-id <id>', '', (value) => Number(value))
.action(async (currentJobSettings) => {
if (!currentJobSettings.applicationName &&
!currentJobSettings.applicationId) {
console.log(chalk_1.default.white.bgRed(`No application parameters are set. Either '--application-name' or '--application-id' must be specified`));
(0, process_1.exit)(1);
}
const application = new application_module_1.ApplicationModule();
await application.init();
// TODO: Need to make '--force' flagged jobs interactive (user must send 'yes' in the terminal)
const isForce = currentJobSettings.force;
const isDryRun = currentJobSettings.dryRun;
const isRuleSpecified = currentJobSettings.ruleName || currentJobSettings.ruleId;
if (isRuleSpecified) {
if (isDryRun) {
await application.applicationByRuleBuild(currentJobSettings);
}
if (!isDryRun) {
currentJobSettings.isForce = isForce;
await application.applicationByRuleBuildAndUpload(currentJobSettings);
}
}
if (!isRuleSpecified) {
if (isDryRun) {
await application.applicationBuild(currentJobSettings);
}
if (!isDryRun) {
currentJobSettings.isForce = isForce;
await application.applicationBuildAndUpload(currentJobSettings);
}
}
})
.configureOutput({
outputError: (str, write) => write(chalk_1.default.bgRed(`Error occurred: ${str.split('error: ')[1]}`)),
});
commander_1.program.parse();