@towercg2/cli
Version:
The command-line components for TowerCG2's server.
48 lines (47 loc) • 2.16 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
const clime_1 = require("clime");
const server_1 = require("@towercg2/server");
const utils_1 = require("../utils");
let Server = class Server extends clime_1.Command {
execute(configFile) {
utils_1.withConfig(configFile, async (config) => {
const server = new server_1.Server(config);
server.baseLogger.info("Starting server through CLI path.");
const startAwaiter = server.start(); // joins into the server
const ON_DEATH = require("death");
ON_DEATH(async (signal, err) => {
if (server.started) {
await server.stop();
}
process.exit(0);
});
await startAwaiter;
});
}
};
__decorate([
clime_1.metadata,
__param(0, clime_1.param({ required: true, description: "application config file" })),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", void 0)
], Server.prototype, "execute", null);
Server = __decorate([
clime_1.command({
description: "starts a TowerCG2 server"
})
], Server);
exports.default = Server;