diff --git a/dist/smartnginx.command.d.ts b/dist/smartnginx.command.d.ts index 19ca114..de5ff3a 100644 --- a/dist/smartnginx.command.d.ts +++ b/dist/smartnginx.command.d.ts @@ -1,13 +1,18 @@ +/// +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 */ diff --git a/dist/smartnginx.command.js b/dist/smartnginx.command.js index 1ed8c48..67bd25d 100644 --- a/dist/smartnginx.command.js +++ b/dist/smartnginx.command.js @@ -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= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRuZ2lueC5jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFZLE9BQU8sV0FBTSxzQkFBc0IsQ0FBQyxDQUFBO0FBS2hELElBQUksaUJBQWlCLEdBQUcsU0FBUyxDQUFDLENBQUMsb0NBQW9DO0FBR3ZFOztHQUVHO0FBQ1EsYUFBSyxHQUFHLFVBQUMsU0FBcUI7SUFDckMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixFQUFFLENBQUEsQ0FBQyxPQUFPLGlCQUFpQixJQUFJLFdBQVcsQ0FBQyxDQUFBLENBQUM7UUFDeEMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLFVBQVMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNO1lBQ2hGLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBVyxNQUFRLENBQUMsQ0FBQztZQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQVcsTUFBUSxDQUFDLENBQUM7WUFDakMsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWUsS0FBTyxDQUFDLENBQUM7WUFDeEMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUFBLENBQUM7SUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ1EsZUFBTyxHQUFHLFVBQUMsU0FBcUI7SUFDdkMsTUFBTSxDQUFDLFlBQUksRUFBRSxDQUFDLElBQUksQ0FDZDtRQUNJLE1BQU0sQ0FBQyxhQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUNKLENBQUM7QUFDTixDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNRLFlBQUksR0FBRztJQUNkLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDN0IsRUFBRSxDQUFBLENBQUMsT0FBTyxpQkFBaUIsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1FBQ3hDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQUEsQ0FBQztJQUNGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ1EsYUFBSyxHQUFHO0lBQ2YsTUFBTSxDQUFDO0FBQ1gsQ0FBQyxDQUFDIn0= \ No newline at end of file diff --git a/dist/smartnginx.plugins.d.ts b/dist/smartnginx.plugins.d.ts index eecf7a8..84b17e7 100644 --- a/dist/smartnginx.plugins.d.ts +++ b/dist/smartnginx.plugins.d.ts @@ -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; diff --git a/dist/smartnginx.plugins.js b/dist/smartnginx.plugins.js index 1691395..dd19856 100644 --- a/dist/smartnginx.plugins.js +++ b/dist/smartnginx.plugins.js @@ -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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRuZ2lueC5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxRQUFPLGdCQUFnQixDQUFDLENBQUE7QUFDVixpQkFBUyxXQUFXLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLFlBQUksV0FBVyxNQUFNLENBQUMsQ0FBQztBQUN2QixvQkFBWSxXQUFXLGVBQWUsQ0FBQyxDQUFDO0FBQ3hDLFlBQUksV0FBVyxNQUFNLENBQUMsQ0FBQztBQUN2QixTQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDcEIsZUFBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMxQixpQkFBUyxXQUFXLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLG1CQUFXLFdBQVcsYUFBYSxDQUFDLENBQUMifQ== \ No newline at end of file diff --git a/package.json b/package.json index a942c17..b29b86d 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/ts/smartnginx.command.ts b/ts/smartnginx.command.ts index 5d0db5a..a9c0323 100644 --- a/ts/smartnginx.command.ts +++ b/ts/smartnginx.command.ts @@ -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; }; /** diff --git a/ts/smartnginx.plugins.ts b/ts/smartnginx.plugins.ts index 4f62552..cbba73b 100644 --- a/ts/smartnginx.plugins.ts +++ b/ts/smartnginx.plugins.ts @@ -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");