UNPKG

@pushrocks/smartnginx

Version:

control nginx from node, TypeScript ready

74 lines 4.4 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const plugins = require("./smartnginx.plugins"); const paths = require("./smartnginx.paths"); const smartshell_1 = require("@pushrocks/smartshell"); /** * manages a nginxprocess for an NginxConfig */ class NginxProcess { constructor(nginxRefArg) { this.started = false; this.smartshellInstance = new smartshell_1.Smartshell({ executor: 'bash' }); this.smartNginxRef = nginxRefArg; } /** * start nginx */ start() { return __awaiter(this, void 0, void 0, function* () { if (!this.nginxChildProcess) { this.nginxChildProcess = (yield this.smartshellInstance.execStreaming(`nginx -c ${paths.nginxConfFile}`)).childProcess; } this.started = true; plugins.smartlog.defaultLogger.log('info', 'started Nginx!'); }); } /** * reload config */ reloadConfig() { return __awaiter(this, void 0, void 0, function* () { if (!this.started) { this.start(); } else { yield this.smartshellInstance.exec('nginx -s reload'); } this.smartNginxRef.logger.log('info', 'NginxProcess has loaded the new config!'); }); } /** * stop the nginx instance */ stop() { return __awaiter(this, void 0, void 0, function* () { if (this.nginxChildProcess) { this.smartshellInstance.exec('nginx -s quit'); this.started = false; this.smartNginxRef.logger.log('info', 'stopped Nginx!'); } else { this.smartNginxRef.logger.log('info', 'nginx already stopped!'); } }); } /** * checks if nginx is in path */ check() { return; } } exports.NginxProcess = NginxProcess; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jbGFzc2VzLm5naW54cHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bmdpbnguY2xhc3Nlcy5uZ2lueHByb2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLGdEQUFnRDtBQUNoRCw0Q0FBNEM7QUFJNUMsc0RBQW1EO0FBSW5EOztHQUVHO0FBQ0gsTUFBYSxZQUFZO0lBUXZCLFlBQVksV0FBdUI7UUFQNUIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUd4Qix1QkFBa0IsR0FBRyxJQUFJLHVCQUFVLENBQUM7WUFDMUMsUUFBUSxFQUFFLE1BQU07U0FDakIsQ0FBQyxDQUFDO1FBR0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUM7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ1UsS0FBSzs7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUNuRSxZQUFZLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FDbEMsQ0FBQyxDQUFDLFlBQVksQ0FBQzthQUNqQjtZQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUMvRCxDQUFDO0tBQUE7SUFFRDs7T0FFRztJQUNVLFlBQVk7O1lBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNqQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDZDtpQkFBTTtnQkFDTCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUN2RDtZQUNELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUseUNBQXlDLENBQUMsQ0FBQztRQUNuRixDQUFDO0tBQUE7SUFFRDs7T0FFRztJQUNVLElBQUk7O1lBQ2YsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUM7YUFDekQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO2FBQ2pFO1FBQ0gsQ0FBQztLQUFBO0lBRUQ7O09BRUc7SUFDSSxLQUFLO1FBQ1YsT0FBTztJQUNULENBQUM7Q0FDRjtBQXhERCxvQ0F3REMifQ==