@levimc-lse/scaffold
Version:
A utility for assisting in the development of Legacy Script Engine plugins.
80 lines (79 loc) • 3.4 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const commander_1 = require("commander");
const CliLogger_1 = require("./CliLogger");
const TypeScriptProject_1 = require("../project/TypeScriptProject");
const Packager_1 = require("../packager/Packager");
const LevilaminaServer_1 = require("../deployment/LevilaminaServer");
commander_1.program
.name("lses")
.version("0.1.0")
.description("A utility for assisting in the development of Legacy Script Engine plugins.");
commander_1.program
.command("manifest")
.description("generate manifest.json for the Legacy Script Engine plugin")
.action(() => {
const logger = new CliLogger_1.CliLogger("manifest");
try {
const project = TypeScriptProject_1.TypeScriptProject.getInstance();
const successMessage = project.getManifest().generate();
logger.success(successMessage);
}
catch (error) {
logger.error(error);
}
});
commander_1.program
.command("pack")
.description("package the Legacy Script Engine plugin")
.action(() => __awaiter(void 0, void 0, void 0, function* () {
const logger = new CliLogger_1.CliLogger("pack");
try {
const project = TypeScriptProject_1.TypeScriptProject.getInstance();
const packager = new Packager_1.Packager(project);
const successMessage = yield packager.package();
logger.success(successMessage);
}
catch (error) {
logger.error(error);
}
}));
commander_1.program
.command("deploy")
.description("deploy the Legacy Script Engine plugin package to the local Levilamina server")
.argument("<path>", "specific Levilamina server working directory")
.action((path) => __awaiter(void 0, void 0, void 0, function* () {
const logger = new CliLogger_1.CliLogger("deploy");
try {
const project = TypeScriptProject_1.TypeScriptProject.getInstance();
const packager = new Packager_1.Packager(project);
const leviLaminaServer = new LevilaminaServer_1.LevilaminaServer(path);
const pluginPackage = packager.getPluginPackage();
try {
leviLaminaServer.removePlugin(project.getName());
}
catch (error) {
// Do nothing if the plugin does not exist.
}
const successMessage = yield leviLaminaServer.importPlugin(pluginPackage);
logger.success(successMessage);
}
catch (error) {
logger.error(error);
}
}));
commander_1.program.on("command:*", () => {
console.error(`Error: Invalid command lses ${commander_1.program.args.join(" ")}`);
commander_1.program.help();
});
commander_1.program.parse(process.argv);