@ajhenry/stack
Version:
A CLI to bootstrap dev environments lightning fast ⚡
63 lines (62 loc) • 2.35 kB
JavaScript
"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,
},
];