71 lines
1.9 KiB
TypeScript
71 lines
1.9 KiB
TypeScript
|
import * as plugins from "./smartnginx.plugins";
|
||
|
import * as paths from "./smartnginx.paths";
|
||
|
import { NginxConfig } from "./smartnginx.classes.nginxconfig";
|
||
|
import { NginxZone } from "./smartnginx.classes.nginxzone";
|
||
|
|
||
|
export class NginxProcess {
|
||
|
started: boolean = false;
|
||
|
nginxConfig:NginxConfig;
|
||
|
nginxChildProcess: plugins.childProcess.ChildProcess;
|
||
|
constructor(nginxConfigArg) {
|
||
|
this.nginxConfig = nginxConfigArg;
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* start nginx
|
||
|
*/
|
||
|
start() {
|
||
|
let done = plugins.q.defer();
|
||
|
if (typeof this.nginxChildProcess == "undefined"){
|
||
|
this.nginxChildProcess = plugins.childProcess.exec(`nginx -c ${paths.nginxConfFile}`, function (error, stdout, stderr) {
|
||
|
console.log(`stdout: ${stdout}`);
|
||
|
console.log(`stderr: ${stderr}`);
|
||
|
if (error !== null) {
|
||
|
console.log(`exec error: ${error}`);
|
||
|
};
|
||
|
});
|
||
|
};
|
||
|
this.started = true;
|
||
|
plugins.beautylog.info("started Nginx!");
|
||
|
done.resolve();
|
||
|
return done.promise;
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* reload config
|
||
|
*/
|
||
|
reloadConfig(){
|
||
|
let done = plugins.q.defer();
|
||
|
if(this.started == false){
|
||
|
this.start()
|
||
|
} else {
|
||
|
this.nginxChildProcess.kill("SIGHUP");
|
||
|
};
|
||
|
plugins.beautylog.ok("NginxProcess has loaded the new config!")
|
||
|
done.resolve();
|
||
|
return done.promise;
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* stop the nginx instance
|
||
|
*/
|
||
|
stop() {
|
||
|
let done = plugins.q.defer();
|
||
|
if (typeof this.nginxChildProcess != "undefined") {
|
||
|
this.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
|
||
|
*/
|
||
|
check(): boolean {
|
||
|
return;
|
||
|
};
|
||
|
}
|