@pushrocks/smartnginx
Version:
control nginx from node, TypeScript ready
74 lines • 4.4 kB
JavaScript
;
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==