UNPKG

@ajhenry/stack

Version:

A CLI to bootstrap dev environments lightning fast ⚡

63 lines (62 loc) 2.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const command_1 = require("@oclif/command"); const path_1 = require("path"); const constants_1 = require("../constants"); const logger_1 = tslib_1.__importDefault(require("../logger")); const parser_1 = tslib_1.__importDefault(require("../parser")); const runner_1 = tslib_1.__importDefault(require("../runner")); class File extends command_1.Command { run() { return tslib_1.__awaiter(this, void 0, void 0, function* () { const { args, flags } = this.parse(File); const { file, directory } = args; const { overwrite, debug } = flags; if (!directory) { throw new Error("The directory argument is needed"); } logger_1.default.setSettings({ minLevel: debug ? "debug" : "info" }); try { const parser = new parser_1.default(); const stackFile = yield parser.readFile(file); logger_1.default.debug(stackFile); logger_1.default.debug(file); logger_1.default.debug(directory); const workingDir = ["~", "/"].includes(directory[0]) ? directory : path_1.join(constants_1.CWD, directory); const runner = new runner_1.default(stackFile, workingDir, { overwrite }); runner.start(); } catch (e) { console.log(e); this.exit(1); } this.exit(0); }); } } exports.default = File; File.description = "Bootstrap a project via a local .stack file and start the dev environment"; File.flags = { help: command_1.flags.help({ char: "h" }), overwrite: command_1.flags.boolean({ char: "o", default: false, description: "Overwrite the specified directory", }), debug: command_1.flags.boolean({ char: "d", default: false, description: "Enable debug mode", }), }; File.args = [ { name: "file", description: "File path to read from", optional: false }, { name: "directory", description: "Directory to install to", optional: false, }, ];