add nginx child process

This commit is contained in:
Phil Kunz 2016-07-11 16:34:51 +02:00
parent 1f2105f75e
commit 871ff06040
7 changed files with 84 additions and 11 deletions

View File

@ -1,13 +1,18 @@
/// <reference types="q" />
import * as plugins from "./smartnginx.plugins";
import { NginxConfig } from "./smartnginx.classes.nginxconfig";
/**
* starts nginx
*/
export declare let start: (configArg: NginxConfig) => void;
export declare let restart: (configArg: NginxConfig) => void;
export declare let start: (configArg: NginxConfig) => plugins.q.Promise<{}>;
/**
* restarts nginx
*/
export declare let restart: (configArg: NginxConfig) => plugins.q.Promise<{}>;
/**
* stops nginx
*/
export declare let stop: () => void;
export declare let stop: () => plugins.q.Promise<{}>;
/**
* checks if nginx is in path
*/

View File

@ -1,17 +1,48 @@
"use strict";
var plugins = require("./smartnginx.plugins");
var nginxChildProcess = undefined; // points to the nginx child process
/**
* starts nginx
*/
exports.start = function (configArg) {
var done = plugins.q.defer();
if (typeof nginxChildProcess == "undefined") {
nginxChildProcess = plugins.childProcess.exec("nginx", function (error, stdout, stderr) {
console.log("stdout: " + stdout);
console.log("stderr: " + stderr);
if (error !== null) {
console.log("exec error: " + error);
}
});
}
;
plugins.beautylog.info("started Nginx!");
done.resolve();
return done.promise;
};
/**
* restarts nginx
*/
exports.restart = function (configArg) {
exports.stop();
exports.start(configArg);
return exports.stop().then(function () {
return exports.start(configArg);
});
};
/**
* stops nginx
*/
exports.stop = function () {
var done = plugins.q.defer();
if (typeof nginxChildProcess != "undefined") {
nginxChildProcess.kill();
plugins.beautylog.info("stopped Nginx!");
}
else {
plugins.beautylog.log("nginx already stopped!");
}
;
done.resolve();
return done.promise;
};
/**
* checks if nginx is in path
@ -19,4 +50,4 @@ exports.stop = function () {
exports.check = function () {
return;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRuZ2lueC5jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFJQTs7R0FFRztBQUNRLGFBQUssR0FBRyxVQUFDLFNBQXFCO0FBRXpDLENBQUMsQ0FBQztBQUVTLGVBQU8sR0FBRyxVQUFDLFNBQXFCO0lBQ3ZDLFlBQUksRUFBRSxDQUFDO0lBQ1AsYUFBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3JCLENBQUMsQ0FBQTtBQUVEOztHQUVHO0FBQ1EsWUFBSSxHQUFHO0FBRWxCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ1EsYUFBSyxHQUFHO0lBQ2YsTUFBTSxDQUFDO0FBQ1gsQ0FBQyxDQUFDIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRuZ2lueC5jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFZLE9BQU8sV0FBTSxzQkFBc0IsQ0FBQyxDQUFBO0FBS2hELElBQUksaUJBQWlCLEdBQUcsU0FBUyxDQUFDLENBQUMsb0NBQW9DO0FBR3ZFOztHQUVHO0FBQ1EsYUFBSyxHQUFHLFVBQUMsU0FBcUI7SUFDckMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixFQUFFLENBQUEsQ0FBQyxPQUFPLGlCQUFpQixJQUFJLFdBQVcsQ0FBQyxDQUFBLENBQUM7UUFDeEMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLFVBQVMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNO1lBQ2hGLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBVyxNQUFRLENBQUMsQ0FBQztZQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQVcsTUFBUSxDQUFDLENBQUM7WUFDakMsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWUsS0FBTyxDQUFDLENBQUM7WUFDeEMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUFBLENBQUM7SUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ1EsZUFBTyxHQUFHLFVBQUMsU0FBcUI7SUFDdkMsTUFBTSxDQUFDLFlBQUksRUFBRSxDQUFDLElBQUksQ0FDZDtRQUNJLE1BQU0sQ0FBQyxhQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUNKLENBQUM7QUFDTixDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNRLFlBQUksR0FBRztJQUNkLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsRUFBRSxDQUFBLENBQUMsT0FBTyxpQkFBaUIsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3hDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQUEsQ0FBQztJQUNGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ1EsYUFBSyxHQUFHO0lBQ2YsTUFBTSxDQUFDO0FBQ1gsQ0FBQyxDQUFDIn0=

View File

@ -1,5 +1,7 @@
import "typings-global";
export import beautylog = require("beautylog");
export import cert = require("cert");
export import childProcess = require("child_process");
export import path = require("path");
export import q = require("q");
export declare let shelljs: any;

View File

@ -1,9 +1,11 @@
"use strict";
require("typings-global");
exports.beautylog = require("beautylog");
exports.cert = require("cert");
exports.childProcess = require("child_process");
exports.path = require("path");
exports.q = require("q");
exports.shelljs = require("shelljs");
exports.smartfile = require("smartfile");
exports.smartstring = require("smartstring");
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRuZ2lueC5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDVixZQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDdkIsWUFBSSxXQUFXLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZCLFNBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztBQUNwQixlQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzFCLGlCQUFTLFdBQVcsV0FBVyxDQUFDLENBQUM7QUFDakMsbUJBQVcsV0FBVyxhQUFhLENBQUMsQ0FBQyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRuZ2lueC5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDVixpQkFBUyxXQUFXLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLFlBQUksV0FBVyxNQUFNLENBQUMsQ0FBQztBQUN2QixvQkFBWSxXQUFXLGVBQWUsQ0FBQyxDQUFDO0FBQ3hDLFlBQUksV0FBVyxNQUFNLENBQUMsQ0FBQztBQUN2QixTQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDcEIsZUFBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMxQixpQkFBUyxXQUFXLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLG1CQUFXLFdBQVcsYUFBYSxDQUFDLENBQUMifQ==

View File

@ -23,6 +23,7 @@
"homepage": "https://gitlab.com/pushrocks/smartnginx#README",
"dependencies": {
"@types/q": "0.0.25-alpha",
"beautylog": "^5.0.13",
"cert": "0.0.13",
"q": "^1.4.1",
"shelljs": "^0.7.0",

View File

@ -2,23 +2,53 @@ import * as plugins from "./smartnginx.plugins";
import {NginxConfig} from "./smartnginx.classes.nginxconfig";
import {NginxZone} from "./smartnginx.classes.nginxzone";
let nginxChildProcess = undefined; // points to the nginx child process
/**
* starts nginx
*/
export let start = (configArg:NginxConfig) => {
let done = plugins.q.defer();
if(typeof nginxChildProcess == "undefined"){
nginxChildProcess = plugins.childProcess.exec("nginx",function(error, stdout, stderr){
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
if (error !== null) {
console.log(`exec error: ${error}`);
}
});
};
plugins.beautylog.info("started Nginx!");
done.resolve();
return done.promise;
};
/**
* restarts nginx
*/
export let restart = (configArg:NginxConfig) => {
stop();
start(configArg);
return stop().then(
() => {
return start(configArg);
}
);
}
/**
* stops nginx
*/
export let stop = () => {
let done = plugins.q.defer();
if(typeof nginxChildProcess != "undefined"){
nginxChildProcess.kill();
plugins.beautylog.info("stopped Nginx!");
} else {
plugins.beautylog.log("nginx already stopped!");
};
done.resolve();
return done.promise;
};
/**

View File

@ -1,5 +1,7 @@
import "typings-global";
export import beautylog = require("beautylog");
export import cert = require("cert");
export import childProcess = require("child_process");
export import path = require("path");
export import q = require("q");
export let shelljs = require("shelljs");