UNPKG

intreface.cli

Version:

Intreface Dev Tools

61 lines (60 loc) 2.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const command_1 = require("@oclif/command"); const notifier = require("node-notifier"); const inquirer = require("inquirer"); const system_1 = require("../@utility/system"); const chalk_1 = require("chalk"); const camelcase = require("camelcase"); const decamelize = require("decamelize"); const objectPath = require("object-path"); const path = require("path"); const questions_1 = require("../@utility/questions"); const questionMap = { // Directory directoryServer: questions_1.directoryServer, directoryRepository: questions_1.directoryRepository, directoryBitrix: questions_1.directoryBitrix, // MySQL mysqlLogin: questions_1.mysqlLogin, mysqlPassword: questions_1.mysqlPassword, // Git gitLogin: questions_1.gitLogin, gitPassword: questions_1.gitPassword }; class Init extends command_1.Command { async run() { const { flags } = this.parse(Init); let questions = Object.values(questionMap); if (flags.config) { let question = questionMap[camelcase(flags.config)]; if (question) { questions = [question]; } else { this.error(`${chalk_1.default.red('💩')} config option "${flags.config}" ${chalk_1.default.red.underline('Does Not Exist')}.`); } } let responses = await inquirer.prompt(questions); let config = objectPath({}); for (let k in responses) { config.set(decamelize(k).replace(/\_/g, '.'), responses[k]); } system_1.writeConfig(config.get('')); console.log(chalk_1.default.green('Config has been saved.')); notifier.notify({ icon: path.join(__dirname, './../@assets/images/logo.png'), title: 'Intreface CLI', message: 'Config has been saved. 😎' }); } } exports.default = Init; Init.description = 'Initialize intreface.cli Config'; Init.examples = [ `$ intreface init`, `$ intreface init --config=mysql-login`, ]; Init.flags = { config: command_1.flags.string(), };