extremum-cli
Version:
Extremum CLI
70 lines (69 loc) • 2.98 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var path_1 = __importDefault(require("path"));
var fs_1 = __importDefault(require("fs"));
var child_process_1 = require("child_process");
var commander_1 = require("commander");
var helpers_1 = require("../helpers");
var extremum_client_1 = __importDefault(require("../extremum-client"));
var yaml_1 = require("yaml");
var initProject = function (appId) {
var client = (0, extremum_client_1.default)();
var projectName = (0, helpers_1.getAppName)();
var currentPath = process.cwd();
var projectPath = path_1.default.join(currentPath, projectName);
var extremumUrl = client.baseUrl;
var gitRepo = 'https://github.com/smekalka/extremum-web-app-starter.git';
var buildConfigJson = function (appId, url) {
var data = {
'app-id': appId,
url: url,
};
fs_1.default.writeFileSync("".concat(process.cwd(), "/src/config.json"), JSON.stringify(data, null, 2), 'utf8');
};
try {
fs_1.default.mkdirSync(projectPath);
}
catch (err) {
if (err.code === 'EEXIST') {
console.log("The file ".concat(projectName, " already exist in the current directory, please give it another name."));
}
else {
console.log(err);
}
process.exit(-1);
}
try {
console.log('Downloading files...');
(0, child_process_1.execSync)("git clone --depth 1 ".concat(gitRepo, " ").concat(projectPath));
process.chdir("".concat(projectPath, "/ui"));
buildConfigJson(appId, extremumUrl);
console.log('Your application was successfully initialized');
}
catch (error) {
console.log(error);
}
};
var changeRegistryUrl = function (registryUrl) {
var appName = (0, helpers_1.getAppName)();
var pathToConfig = (0, helpers_1.getConfigFilePath)(appName);
var pathToCredsConfig = (0, helpers_1.getCredentialsConfigFilePath)(appName);
var config = (0, yaml_1.parse)(fs_1.default.readFileSync(pathToConfig, 'utf-8'));
var credsConfig = (0, yaml_1.parse)(fs_1.default.readFileSync(pathToCredsConfig, 'utf-8'));
var currentEnv = config.environments.find(function (environment) { return environment.name === credsConfig.currentEnv; });
currentEnv.docker.registry = registryUrl;
fs_1.default.writeFileSync(pathToCredsConfig, (0, yaml_1.stringify)(config));
};
var app = new commander_1.Command('app').description('manage your apps');
app
.command('init <app-id>')
.description('create an app and initialize it with sample code')
.action((0, helpers_1.actionRunner)(initProject));
app
.command('registry <registry-url>')
.description('Set Docker registry URL')
.action((0, helpers_1.actionRunner)(changeRegistryUrl));
exports.default = app;