now working as intended
This commit is contained in:
		| @@ -4,6 +4,9 @@ stages: | |||||||
| - test | - test | ||||||
| - release | - release | ||||||
|  |  | ||||||
|  | before_script: | ||||||
|  |   - "apt-get update && apt-get install nginx -y" | ||||||
|  |  | ||||||
| testLEGACY: | testLEGACY: | ||||||
|   stage: test |   stage: test | ||||||
|   script: |   script: | ||||||
| @@ -28,6 +31,7 @@ testSTABLE: | |||||||
|  |  | ||||||
| release: | release: | ||||||
|   stage: release |   stage: release | ||||||
|  |   environment: npmjs-com_registry | ||||||
|   script: |   script: | ||||||
|     - npmci publish |     - npmci publish | ||||||
|   only: |   only: | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/index.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,3 @@ | |||||||
| import * as CommandModule from "./smartnginx.command"; |  | ||||||
| export { NginxConfig } from "./smartnginx.classes.nginxconfig"; | export { NginxConfig } from "./smartnginx.classes.nginxconfig"; | ||||||
|  | export { NginxProcess } from "./smartnginx.classes.nginxprocess"; | ||||||
| export { NginxZone, zoneTypes } from "./smartnginx.classes.nginxzone"; | export { NginxZone, zoneTypes } from "./smartnginx.classes.nginxzone"; | ||||||
| export declare let command: typeof CommandModule; |  | ||||||
|   | |||||||
							
								
								
									
										7
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,11 +1,10 @@ | |||||||
| "use strict"; | "use strict"; | ||||||
| const CommandModule = require("./smartnginx.command"); |  | ||||||
| // classes | // classes | ||||||
| var smartnginx_classes_nginxconfig_1 = require("./smartnginx.classes.nginxconfig"); | var smartnginx_classes_nginxconfig_1 = require("./smartnginx.classes.nginxconfig"); | ||||||
| exports.NginxConfig = smartnginx_classes_nginxconfig_1.NginxConfig; | exports.NginxConfig = smartnginx_classes_nginxconfig_1.NginxConfig; | ||||||
|  | var smartnginx_classes_nginxprocess_1 = require("./smartnginx.classes.nginxprocess"); | ||||||
|  | exports.NginxProcess = smartnginx_classes_nginxprocess_1.NginxProcess; | ||||||
| var smartnginx_classes_nginxzone_1 = require("./smartnginx.classes.nginxzone"); | var smartnginx_classes_nginxzone_1 = require("./smartnginx.classes.nginxzone"); | ||||||
| exports.NginxZone = smartnginx_classes_nginxzone_1.NginxZone; | exports.NginxZone = smartnginx_classes_nginxzone_1.NginxZone; | ||||||
| exports.zoneTypes = smartnginx_classes_nginxzone_1.zoneTypes; | exports.zoneTypes = smartnginx_classes_nginxzone_1.zoneTypes; | ||||||
| // exports | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsVUFBVTtBQUNWLCtDQUEwQixrQ0FBa0MsQ0FBQztBQUFyRCxtRUFBcUQ7QUFDN0QsZ0RBQTJCLG1DQUFtQyxDQUFDO0FBQXZELHNFQUF1RDtBQUMvRCw2Q0FBa0MsZ0NBQWdDLENBQUM7QUFBM0QsNkRBQVM7QUFBQyw2REFBaUQifQ== | ||||||
| exports.command = CommandModule; |  | ||||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsTUFBWSxhQUFhLFdBQU0sc0JBQXNCLENBQUMsQ0FBQTtBQUV0RCxVQUFVO0FBQ1YsK0NBQTBCLGtDQUFrQyxDQUFDO0FBQXJELG1FQUFxRDtBQUM3RCw2Q0FBa0MsZ0NBQWdDLENBQUM7QUFBM0QsNkRBQVM7QUFBQyw2REFBaUQ7QUFFbkUsVUFBVTtBQUNDLGVBQU8sR0FBRyxhQUFhLENBQUMifQ== |  | ||||||
							
								
								
									
										4
									
								
								dist/smartnginx.classes.nginxconfig.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/smartnginx.classes.nginxconfig.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,14 +1,16 @@ | |||||||
| /// <reference types="q" /> | /// <reference types="q" /> | ||||||
| import * as plugins from "./smartnginx.plugins"; | import * as plugins from "./smartnginx.plugins"; | ||||||
| import { NginxZone } from "./smartnginx.classes.nginxzone"; | import { NginxZone } from "./smartnginx.classes.nginxzone"; | ||||||
|  | import { NginxProcess } from "./smartnginx.classes.nginxprocess"; | ||||||
| export declare class NginxConfig { | export declare class NginxConfig { | ||||||
|     zones: NginxZone[]; |     zones: NginxZone[]; | ||||||
|     cert: plugins.cert.Cert; |     cert: plugins.cert.Cert; | ||||||
|  |     nginxProcess: NginxProcess; | ||||||
|     isDeployed: boolean; |     isDeployed: boolean; | ||||||
|     constructor(optionsArg: plugins.cert.ICertConstructorOptions); |     constructor(optionsArg: plugins.cert.ICertConstructorOptions); | ||||||
|     addZone(zoneArg: NginxZone): void; |     addZone(zoneArg: NginxZone): void; | ||||||
|     listZones(): NginxZone[]; |     listZones(): NginxZone[]; | ||||||
|     removeZones(zoneArg: NginxZone): void; |     removeZones(zoneArg: NginxZone): void; | ||||||
|     clean(): void; |     clean(): void; | ||||||
|     deploy(nginxRestartArg?: boolean): plugins.q.Promise<{}>; |     deploy(): plugins.q.Promise<{}>; | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										22
									
								
								dist/smartnginx.classes.nginxconfig.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								dist/smartnginx.classes.nginxconfig.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,12 +1,13 @@ | |||||||
| "use strict"; | "use strict"; | ||||||
| const plugins = require("./smartnginx.plugins"); | const plugins = require("./smartnginx.plugins"); | ||||||
| const paths = require("./smartnginx.paths"); | const paths = require("./smartnginx.paths"); | ||||||
| const command = require("./smartnginx.command"); |  | ||||||
| const snippets = require("./smartnginx.snippets"); | const snippets = require("./smartnginx.snippets"); | ||||||
|  | const smartnginx_classes_nginxprocess_1 = require("./smartnginx.classes.nginxprocess"); | ||||||
| let allConfigs = []; | let allConfigs = []; | ||||||
| class NginxConfig { | class NginxConfig { | ||||||
|     constructor(optionsArg) { |     constructor(optionsArg) { | ||||||
|         this.zones = []; |         this.zones = []; | ||||||
|  |         this.nginxProcess = new smartnginx_classes_nginxprocess_1.NginxProcess(this); | ||||||
|         this.isDeployed = false; |         this.isDeployed = false; | ||||||
|         this.cert = new plugins.cert.Cert({ |         this.cert = new plugins.cert.Cert({ | ||||||
|             cfEmail: optionsArg.cfEmail, |             cfEmail: optionsArg.cfEmail, | ||||||
| @@ -31,9 +32,8 @@ class NginxConfig { | |||||||
|         this.zones = []; |         this.zones = []; | ||||||
|     } |     } | ||||||
|     // handle deployment of zones |     // handle deployment of zones | ||||||
|     deploy(nginxRestartArg = false) { |     deploy() { | ||||||
|         let done = plugins.q.defer(); |         let done = plugins.q.defer(); | ||||||
|         plugins.smartfile.fs.removeSync(paths.nginxConfigBase); |  | ||||||
|         plugins.smartfile.fs.ensureDirSync(paths.nginxConfigBase); |         plugins.smartfile.fs.ensureDirSync(paths.nginxConfigBase); | ||||||
|         plugins.smartfile.fs.ensureDirSync(paths.nginxZoneBase); |         plugins.smartfile.fs.ensureDirSync(paths.nginxZoneBase); | ||||||
|         plugins.smartfile.fs.ensureDirSync(paths.nginxCertBase); |         plugins.smartfile.fs.ensureDirSync(paths.nginxCertBase); | ||||||
| @@ -43,20 +43,20 @@ class NginxConfig { | |||||||
|         ; |         ; | ||||||
|         this.isDeployed = true; |         this.isDeployed = true; | ||||||
|         // write base config |         // write base config | ||||||
|         plugins.smartfile.memory.toFsSync(snippets.getBaseConfigString(), plugins.path.join(paths.nginxConfigBase, "nginx.conf")); |         plugins.smartfile.memory.toFsSync(snippets.getBaseConfigString(), paths.nginxConfFile); | ||||||
|         // deploy zones |         // deploy zones | ||||||
|         let promiseArray = []; |         let promiseArray = []; | ||||||
|         for (let zone of this.zones) { |         for (let zone of this.zones) { | ||||||
|             promiseArray.push(zone.deploy(this.cert)); |             let zoneDeployedPromise = zone.deploy(this.cert); | ||||||
|  |             zoneDeployedPromise.then(() => { | ||||||
|  |                 plugins.beautylog.info(`Zone ${zone.zoneName} deployed!`); | ||||||
|  |                 this.nginxProcess.reloadConfig(); | ||||||
|  |             }); | ||||||
|  |             promiseArray.push(zoneDeployedPromise); | ||||||
|         } |         } | ||||||
|         ; |         ; | ||||||
|         plugins.q.all(promiseArray) |         plugins.q.all(promiseArray) | ||||||
|             .then(() => { |             .then(() => { | ||||||
|             // restart nginx |  | ||||||
|             if (nginxRestartArg) { |  | ||||||
|                 command.restart(this); |  | ||||||
|             } |  | ||||||
|             ; |  | ||||||
|             done.resolve(); |             done.resolve(); | ||||||
|         }); |         }); | ||||||
|         return done.promise; |         return done.promise; | ||||||
| @@ -65,4 +65,4 @@ class NginxConfig { | |||||||
| } | } | ||||||
| exports.NginxConfig = NginxConfig; | exports.NginxConfig = NginxConfig; | ||||||
| ; | ; | ||||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jbGFzc2VzLm5naW54Y29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRuZ2lueC5jbGFzc2VzLm5naW54Y29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFZLE9BQU8sV0FBTSxzQkFBc0IsQ0FBQyxDQUFBO0FBQ2hELE1BQVksS0FBSyxXQUFNLG9CQUFvQixDQUFDLENBQUE7QUFDNUMsTUFBWSxPQUFPLFdBQU0sc0JBQXNCLENBQUMsQ0FBQTtBQUNoRCxNQUFZLFFBQVEsV0FBTSx1QkFDMUIsQ0FBQyxDQURnRDtBQUVqRCxJQUFJLFVBQVUsR0FBaUIsRUFBRSxDQUFDO0FBRWxDO0lBSUksWUFBWSxVQUErQztRQUgzRCxVQUFLLEdBQWUsRUFBRSxDQUFDO1FBRXZCLGVBQVUsR0FBVyxLQUFLLENBQUM7UUFFdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzlCLE9BQU8sRUFBQyxVQUFVLENBQUMsT0FBTztZQUMxQixLQUFLLEVBQUMsVUFBVSxDQUFDLEtBQUs7WUFDdEIsTUFBTSxFQUFDLEtBQUssQ0FBQyxhQUFhO1lBQzFCLGFBQWEsRUFBQyxVQUFVLENBQUMsYUFBYTtZQUN0QyxRQUFRLEVBQUMsVUFBVSxDQUFDLFFBQVE7U0FDL0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7SUFFRCxzQkFBc0I7SUFDdEIsT0FBTyxDQUFDLE9BQWlCO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxTQUFTO1FBQ0wsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQzs7SUFDRCxXQUFXLENBQUMsT0FBaUI7SUFFN0IsQ0FBQztJQUNELEtBQUs7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsNkJBQTZCO0lBQzdCLE1BQU0sQ0FBQyxlQUFlLEdBQVcsS0FBSztRQUNsQyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsR0FBRyxDQUFBLENBQUMsSUFBSSxNQUFNLElBQUksVUFBVSxDQUFDLENBQUEsQ0FBQztZQUMxQixNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUM5QixDQUFDO1FBQUEsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLG9CQUFvQjtRQUNwQixPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQzdCLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxFQUM5QixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFDLFlBQVksQ0FBQyxDQUN4RCxDQUFDO1FBQ0YsZUFBZTtRQUNmLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN0QixHQUFHLENBQUEsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQztZQUN4QixZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUFBLENBQUM7UUFDRixPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7YUFDdEIsSUFBSSxDQUFDO1lBQ0YsZ0JBQWdCO1lBQ2hCLEVBQUUsQ0FBQSxDQUFDLGVBQWUsQ0FBQyxDQUFBLENBQUM7Z0JBQ2hCLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsQ0FBQztZQUFBLENBQUM7WUFDRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFFUCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDOztBQUNMLENBQUM7QUEzRFksbUJBQVcsY0EyRHZCLENBQUE7QUFBQSxDQUFDIn0= | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jbGFzc2VzLm5naW54Y29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRuZ2lueC5jbGFzc2VzLm5naW54Y29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFZLE9BQU8sV0FBTSxzQkFBc0IsQ0FBQyxDQUFBO0FBQ2hELE1BQVksS0FBSyxXQUFNLG9CQUFvQixDQUFDLENBQUE7QUFDNUMsTUFBWSxRQUFRLFdBQU0sdUJBQXVCLENBQUMsQ0FBQTtBQUVsRCxrREFBNkIsbUNBQW1DLENBQUMsQ0FBQTtBQUNqRSxJQUFJLFVBQVUsR0FBa0IsRUFBRSxDQUFDO0FBRW5DO0lBS0ksWUFBWSxVQUFnRDtRQUo1RCxVQUFLLEdBQWdCLEVBQUUsQ0FBQztRQUV4QixpQkFBWSxHQUFpQixJQUFJLDhDQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUV4QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDOUIsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO1lBQzNCLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSztZQUN2QixNQUFNLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDM0IsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhO1lBQ3ZDLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtTQUNoQyxDQUFDLENBQUM7SUFDUCxDQUFDOztJQUVELHNCQUFzQjtJQUN0QixPQUFPLENBQUMsT0FBa0I7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELFNBQVM7UUFDTCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDOztJQUNELFdBQVcsQ0FBQyxPQUFrQjtJQUU5QixDQUFDO0lBQ0QsS0FBSztRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCw2QkFBNkI7SUFDN0IsTUFBTTtRQUNGLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsR0FBRyxDQUFDLENBQUMsSUFBSSxNQUFNLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztZQUM1QixNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUM5QixDQUFDO1FBQUEsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLG9CQUFvQjtRQUNwQixPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQzdCLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxFQUM5QixLQUFLLENBQUMsYUFBYSxDQUN0QixDQUFDO1FBQ0YsZUFBZTtRQUNmLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN0QixHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMxQixJQUFJLG1CQUFtQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pELG1CQUFtQixDQUFDLElBQUksQ0FBQztnQkFDckIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxZQUFZLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztZQUNILFlBQVksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQUEsQ0FBQztRQUNGLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQzthQUN0QixJQUFJLENBQUM7WUFDRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFFUCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDOztBQUNMLENBQUM7QUE1RFksbUJBQVcsY0E0RHZCLENBQUE7QUFBQSxDQUFDIn0= | ||||||
							
								
								
									
										26
									
								
								dist/smartnginx.classes.nginxprocess.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								dist/smartnginx.classes.nginxprocess.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | |||||||
|  | /// <reference types="node" /> | ||||||
|  | /// <reference types="q" /> | ||||||
|  | import * as plugins from "./smartnginx.plugins"; | ||||||
|  | import { NginxConfig } from "./smartnginx.classes.nginxconfig"; | ||||||
|  | export declare class NginxProcess { | ||||||
|  |     started: boolean; | ||||||
|  |     nginxConfig: NginxConfig; | ||||||
|  |     nginxChildProcess: plugins.childProcess.ChildProcess; | ||||||
|  |     constructor(nginxConfigArg: any); | ||||||
|  |     /** | ||||||
|  |      * start nginx | ||||||
|  |      */ | ||||||
|  |     start(): plugins.q.Promise<{}>; | ||||||
|  |     /** | ||||||
|  |      * reload config | ||||||
|  |      */ | ||||||
|  |     reloadConfig(): plugins.q.Promise<{}>; | ||||||
|  |     /** | ||||||
|  |      * stop the nginx instance | ||||||
|  |      */ | ||||||
|  |     stop(): plugins.q.Promise<{}>; | ||||||
|  |     /** | ||||||
|  |      * checks if nginx is in path | ||||||
|  |      */ | ||||||
|  |     check(): boolean; | ||||||
|  | } | ||||||
							
								
								
									
										75
									
								
								dist/smartnginx.classes.nginxprocess.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								dist/smartnginx.classes.nginxprocess.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,75 @@ | |||||||
|  | "use strict"; | ||||||
|  | const plugins = require("./smartnginx.plugins"); | ||||||
|  | const paths = require("./smartnginx.paths"); | ||||||
|  | class NginxProcess { | ||||||
|  |     constructor(nginxConfigArg) { | ||||||
|  |         this.started = false; | ||||||
|  |         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() { | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  |     ; | ||||||
|  | } | ||||||
|  | exports.NginxProcess = NginxProcess; | ||||||
|  | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jbGFzc2VzLm5naW54cHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bmdpbnguY2xhc3Nlcy5uZ2lueHByb2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUFzQixDQUFDLENBQUE7QUFDaEQsTUFBWSxLQUFLLFdBQU0sb0JBQW9CLENBQUMsQ0FBQTtBQUk1QztJQUlJLFlBQVksY0FBYztRQUgxQixZQUFPLEdBQVksS0FBSyxDQUFDO1FBSXJCLElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDO0lBQ3RDLENBQUM7O0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0QsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxXQUFXLENBQUMsQ0FBQSxDQUFDO1lBQzlDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssQ0FBQyxhQUFhLEVBQUUsRUFBRSxVQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTTtnQkFDakgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7Z0JBQUEsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUFBLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7O0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1IsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixFQUFFLENBQUEsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxDQUFBLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2hCLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUFBLENBQUM7UUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFBO1FBQy9ELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7O0lBRUQ7O09BRUc7SUFDSCxJQUFJO1FBQ0EsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUFBLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDOztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNELE1BQU0sQ0FBQztJQUNYLENBQUM7O0FBQ0wsQ0FBQztBQWhFWSxvQkFBWSxlQWdFeEIsQ0FBQSJ9 | ||||||
							
								
								
									
										2
									
								
								dist/smartnginx.classes.nginxzone.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/smartnginx.classes.nginxzone.js
									
									
									
									
										vendored
									
									
								
							| @@ -29,4 +29,4 @@ class NginxZone { | |||||||
| } | } | ||||||
| exports.NginxZone = NginxZone; | exports.NginxZone = NginxZone; | ||||||
| ; | ; | ||||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jbGFzc2VzLm5naW54em9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bmdpbnguY2xhc3Nlcy5uZ2lueHpvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUFzQixDQUFDLENBQUE7QUFDaEQsTUFBWSxLQUFLLFdBQU0sb0JBQW9CLENBQUMsQ0FBQTtBQUU1QyxNQUFZLFFBQVEsV0FBTSx1QkFDMUIsQ0FBQyxDQURnRDtBQUNqRCxXQUFZLFNBQVM7SUFDZCx5REFBWSxDQUFBO0lBQ1osNkNBQU0sQ0FBQTtBQUNiLENBQUMsRUFIVyxpQkFBUyxLQUFULGlCQUFTLFFBR3BCO0FBSEQsSUFBWSxTQUFTLEdBQVQsaUJBR1gsQ0FBQTtBQUVEO0lBS0ksWUFBWSxVQUlYO1FBQ0csSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakcsQ0FBQzs7SUFDRCxNQUFNLENBQUMsZUFBaUM7UUFDcEMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDOUUsY0FBYztRQUNkLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlELFdBQVc7UUFDWCxlQUFlLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDOztBQUNMLENBQUM7QUF6QlksaUJBQVMsWUF5QnJCLENBQUE7QUFBQSxDQUFDIn0= | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jbGFzc2VzLm5naW54em9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bmdpbnguY2xhc3Nlcy5uZ2lueHpvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUFzQixDQUFDLENBQUE7QUFDaEQsTUFBWSxLQUFLLFdBQU0sb0JBQW9CLENBQUMsQ0FBQTtBQUM1QyxNQUFZLFFBQVEsV0FBTSx1QkFDMUIsQ0FBQyxDQURnRDtBQUNqRCxXQUFZLFNBQVM7SUFDakIseURBQVksQ0FBQTtJQUNaLDZDQUFNLENBQUE7QUFDVixDQUFDLEVBSFcsaUJBQVMsS0FBVCxpQkFBUyxRQUdwQjtBQUhELElBQVksU0FBUyxHQUFULGlCQUdYLENBQUE7QUFFRDtJQUtJLFlBQVksVUFJWDtRQUNHLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7O0lBQ0QsTUFBTSxDQUFDLGVBQWtDO1FBQ3JDLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQy9FLGNBQWM7UUFDZCxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvRCxXQUFXO1FBQ1gsZUFBZSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs7QUFDTCxDQUFDO0FBekJZLGlCQUFTLFlBeUJyQixDQUFBO0FBQUEsQ0FBQyJ9 | ||||||
							
								
								
									
										19
									
								
								dist/smartnginx.command.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								dist/smartnginx.command.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,19 +0,0 @@ | |||||||
| /// <reference types="q" /> |  | ||||||
| import * as plugins from "./smartnginx.plugins"; |  | ||||||
| import { NginxConfig } from "./smartnginx.classes.nginxconfig"; |  | ||||||
| /** |  | ||||||
|  * starts nginx |  | ||||||
|  */ |  | ||||||
| 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: () => plugins.q.Promise<{}>; |  | ||||||
| /** |  | ||||||
|  * checks if nginx is in path |  | ||||||
|  */ |  | ||||||
| export declare let check: () => boolean; |  | ||||||
							
								
								
									
										53
									
								
								dist/smartnginx.command.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										53
									
								
								dist/smartnginx.command.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,53 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| const plugins = require("./smartnginx.plugins"); |  | ||||||
| let nginxChildProcess = undefined; // points to the nginx child process |  | ||||||
| /** |  | ||||||
|  * starts nginx |  | ||||||
|  */ |  | ||||||
| exports.start = (configArg) => { |  | ||||||
|     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 |  | ||||||
|  */ |  | ||||||
| exports.restart = (configArg) => { |  | ||||||
|     return exports.stop().then(() => { |  | ||||||
|         return exports.start(configArg); |  | ||||||
|     }); |  | ||||||
| }; |  | ||||||
| /** |  | ||||||
|  * stops nginx |  | ||||||
|  */ |  | ||||||
| exports.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; |  | ||||||
| }; |  | ||||||
| /** |  | ||||||
|  * checks if nginx is in path |  | ||||||
|  */ |  | ||||||
| exports.check = () => { |  | ||||||
|     return; |  | ||||||
| }; |  | ||||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRuZ2lueC5jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFZLE9BQU8sV0FBTSxzQkFBc0IsQ0FBQyxDQUFBO0FBS2hELElBQUksaUJBQWlCLEdBQUcsU0FBUyxDQUFDLENBQUMsb0NBQW9DO0FBR3ZFOztHQUVHO0FBQ1EsYUFBSyxHQUFHLENBQUMsU0FBcUI7SUFDckMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixFQUFFLENBQUEsQ0FBQyxPQUFPLGlCQUFpQixJQUFJLFdBQVcsQ0FBQyxDQUFBLENBQUM7UUFDeEMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFDLFVBQVMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNO1lBQ2hGLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQUEsQ0FBQztJQUNGLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDUSxlQUFPLEdBQUcsQ0FBQyxTQUFxQjtJQUN2QyxNQUFNLENBQUMsWUFBSSxFQUFFLENBQUMsSUFBSSxDQUNkO1FBQ0ksTUFBTSxDQUFDLGFBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQ0osQ0FBQztBQUNOLENBQUMsQ0FBQTtBQUVEOztHQUVHO0FBQ1EsWUFBSSxHQUFHO0lBQ2QsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixFQUFFLENBQUEsQ0FBQyxPQUFPLGlCQUFpQixJQUFJLFdBQVcsQ0FBQyxDQUFBLENBQUM7UUFDeEMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFBQSxDQUFDO0lBQ0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDUSxhQUFLLEdBQUc7SUFDZixNQUFNLENBQUM7QUFDWCxDQUFDLENBQUMifQ== |  | ||||||
							
								
								
									
										1
									
								
								dist/smartnginx.paths.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								dist/smartnginx.paths.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -2,3 +2,4 @@ export declare let packageBase: string; | |||||||
| export declare let nginxConfigBase: string; | export declare let nginxConfigBase: string; | ||||||
| export declare let nginxZoneBase: string; | export declare let nginxZoneBase: string; | ||||||
| export declare let nginxCertBase: string; | export declare let nginxCertBase: string; | ||||||
|  | export declare let nginxConfFile: string; | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								dist/smartnginx.paths.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								dist/smartnginx.paths.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +1,10 @@ | |||||||
| "use strict"; | "use strict"; | ||||||
| const plugins = require("./smartnginx.plugins"); | const plugins = require("./smartnginx.plugins"); | ||||||
|  | // directories | ||||||
| exports.packageBase = plugins.path.join(__dirname, "../"); | exports.packageBase = plugins.path.join(__dirname, "../"); | ||||||
| exports.nginxConfigBase = plugins.path.join(exports.packageBase, "nginxconfig"); | exports.nginxConfigBase = plugins.path.join(exports.packageBase, "nginxconfig"); | ||||||
| exports.nginxZoneBase = plugins.path.join(exports.nginxConfigBase, "zones"); | exports.nginxZoneBase = plugins.path.join(exports.nginxConfigBase, "zones"); | ||||||
| exports.nginxCertBase = plugins.path.join(exports.nginxConfigBase, "cert"); | exports.nginxCertBase = plugins.path.join(exports.nginxConfigBase, "cert"); | ||||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5wYXRocy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bmdpbngucGF0aHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUV6QixDQUFDLENBRjhDO0FBRXBDLG1CQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pELHVCQUFlLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQVcsRUFBQyxhQUFhLENBQUMsQ0FBQztBQUMvRCxxQkFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUFlLEVBQUMsT0FBTyxDQUFDLENBQUM7QUFDM0QscUJBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBZSxFQUFDLE1BQU0sQ0FBQyxDQUFDIn0= | // files | ||||||
|  | exports.nginxConfFile = plugins.path.join(exports.nginxConfigBase, "nginx.conf"); | ||||||
|  | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5wYXRocy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0bmdpbngucGF0aHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE1BQVksT0FBTyxXQUFNLHNCQUd6QixDQUFDLENBSDhDO0FBRS9DLGNBQWM7QUFDSCxtQkFBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBQyxLQUFLLENBQUMsQ0FBQztBQUNqRCx1QkFBZSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFXLEVBQUMsYUFBYSxDQUFDLENBQUM7QUFDL0QscUJBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBZSxFQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzNELHFCQUFhLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQWUsRUFBQyxNQUFNLENBQUMsQ0FBQztBQUVyRSxRQUFRO0FBQ0cscUJBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBZSxFQUFDLFlBQVksQ0FBQyxDQUFDIn0= | ||||||
| @@ -24,10 +24,10 @@ | |||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@types/q": "^0.0.27", |     "@types/q": "^0.0.27", | ||||||
|     "@types/shelljs": "^0.3.27", |     "@types/shelljs": "^0.3.27", | ||||||
|     "beautylog": "^5.0.14", |     "beautylog": "^5.0.18", | ||||||
|     "cert": "0.0.17", |     "cert": "1.0.6", | ||||||
|     "q": "^1.4.1", |     "q": "^1.4.1", | ||||||
|     "shelljs": "^0.7.0", |     "shelljs": "^0.7.1", | ||||||
|     "smartfile": "^4.0.12", |     "smartfile": "^4.0.12", | ||||||
|     "smartstring": "^2.0.15" |     "smartstring": "^2.0.15" | ||||||
|   }, |   }, | ||||||
|   | |||||||
| @@ -27,6 +27,7 @@ describe("smartnginx", function () { | |||||||
|         }); |         }); | ||||||
|     }); |     }); | ||||||
|     describe("NginxConfig", function () { |     describe("NginxConfig", function () { | ||||||
|  |         this.timeout(10000); | ||||||
|         it(`"new NginxConfig()" should produce an instance of NginxConfig`, function () { |         it(`"new NginxConfig()" should produce an instance of NginxConfig`, function () { | ||||||
|             testNginxConfig = new smartnginx.NginxConfig({ |             testNginxConfig = new smartnginx.NginxConfig({ | ||||||
|                 cfEmail: process.env.CF_EMAIL, |                 cfEmail: process.env.CF_EMAIL, | ||||||
| @@ -42,7 +43,7 @@ describe("smartnginx", function () { | |||||||
|             }); |             }); | ||||||
|         }); |         }); | ||||||
|         describe(".deploy()", function () { |         describe(".deploy()", function () { | ||||||
|             this.timeout(240000); |             this.timeout(600000); | ||||||
|             it("should deploy a config from an instance", function (done) { |             it("should deploy a config from an instance", function (done) { | ||||||
|                 testNginxConfig.deploy() |                 testNginxConfig.deploy() | ||||||
|                     .then(() => { |                     .then(() => { | ||||||
| @@ -52,4 +53,4 @@ describe("smartnginx", function () { | |||||||
|         }); |         }); | ||||||
|     }); |     }); | ||||||
| }); | }); | ||||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FBYyxDQUFDLENBQUE7QUFDdEIsTUFBTyxJQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDOUIsUUFBTyxRQUFRLENBQUMsQ0FBQTtBQUNoQix1QkFBbUIsTUFBTSxDQUFDLENBQUE7QUFDMUIsTUFBWSxVQUFVLFdBQU0sZUFBZSxDQUFDLENBQUE7QUFFNUMsb0JBQW9CO0FBQ3BCLElBQUksUUFBUSxHQUFHLElBQUksV0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLFFBQVEsQ0FBQyxZQUFZLEVBQUM7SUFDbEIsSUFBSSxlQUFzQyxDQUFDO0lBQzNDLElBQUksZUFBb0MsQ0FBQztJQUN6QyxJQUFJLGVBQW9DLENBQUM7SUFDekMsUUFBUSxDQUFDLFdBQVcsRUFBQztRQUNqQixFQUFFLENBQUMsNkRBQTZELEVBQUM7WUFDN0QsZUFBZSxHQUFHLElBQUksVUFBVSxDQUFDLFNBQVMsQ0FBQztnQkFDdkMsUUFBUSxFQUFDLGlCQUFpQjtnQkFDMUIsSUFBSSxFQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWTtnQkFDdEMsV0FBVyxFQUFDLGlCQUFpQjthQUNoQyxDQUFDLENBQUM7WUFDSCxlQUFlLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDO2dCQUN2QyxRQUFRLEVBQUMsaUJBQWlCO2dCQUMxQixJQUFJLEVBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxZQUFZO2dCQUN0QyxXQUFXLEVBQUMsaUJBQWlCO2FBQ2hDLENBQUMsQ0FBQztZQUNILGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztJQUNILFFBQVEsQ0FBQyxhQUFhLEVBQUM7UUFDbkIsRUFBRSxDQUFDLCtEQUErRCxFQUFDO1lBQy9ELGVBQWUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUM7Z0JBQ3pDLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVE7Z0JBQzdCLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU07Z0JBQ3pCLFFBQVEsRUFBQyxJQUFJO2FBQ2hCLENBQUMsQ0FBQztZQUNILGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7UUFDSCxRQUFRLENBQUMsWUFBWSxFQUFDO1lBQ2xCLEVBQUUsQ0FBQyx5Q0FBeUMsRUFBQztnQkFDekMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDekMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUM3QyxDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ0gsUUFBUSxDQUFDLFdBQVcsRUFBQztZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JCLEVBQUUsQ0FBQyx5Q0FBeUMsRUFBQyxVQUFTLElBQUk7Z0JBQ3RELGVBQWUsQ0FBQyxNQUFNLEVBQUU7cUJBQ25CLElBQUksQ0FBQztvQkFDRixJQUFJLEVBQUUsQ0FBQztnQkFDWCxDQUFDLENBQUMsQ0FBQztZQUNYLENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDIn0= | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sY0FBYyxDQUFDLENBQUE7QUFDdEIsTUFBTyxJQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDOUIsUUFBTyxRQUFRLENBQUMsQ0FBQTtBQUNoQix1QkFBbUIsTUFBTSxDQUFDLENBQUE7QUFDMUIsTUFBWSxVQUFVLFdBQU0sZUFBZSxDQUFDLENBQUE7QUFFNUMsb0JBQW9CO0FBQ3BCLElBQUksUUFBUSxHQUFHLElBQUksV0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLFFBQVEsQ0FBQyxZQUFZLEVBQUM7SUFDbEIsSUFBSSxlQUFzQyxDQUFDO0lBQzNDLElBQUksZUFBb0MsQ0FBQztJQUN6QyxJQUFJLGVBQW9DLENBQUM7SUFDekMsUUFBUSxDQUFDLFdBQVcsRUFBQztRQUNqQixFQUFFLENBQUMsNkRBQTZELEVBQUM7WUFDN0QsZUFBZSxHQUFHLElBQUksVUFBVSxDQUFDLFNBQVMsQ0FBQztnQkFDdkMsUUFBUSxFQUFDLGlCQUFpQjtnQkFDMUIsSUFBSSxFQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWTtnQkFDdEMsV0FBVyxFQUFDLGlCQUFpQjthQUNoQyxDQUFDLENBQUM7WUFDSCxlQUFlLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDO2dCQUN2QyxRQUFRLEVBQUMsaUJBQWlCO2dCQUMxQixJQUFJLEVBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxZQUFZO2dCQUN0QyxXQUFXLEVBQUMsaUJBQWlCO2FBQ2hDLENBQUMsQ0FBQztZQUNILGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztJQUNILFFBQVEsQ0FBQyxhQUFhLEVBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixFQUFFLENBQUMsK0RBQStELEVBQUM7WUFDL0QsZUFBZSxHQUFHLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQztnQkFDekMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUTtnQkFDN0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTTtnQkFDekIsUUFBUSxFQUFDLElBQUk7YUFDaEIsQ0FBQyxDQUFDO1lBQ0gsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQztRQUNILFFBQVEsQ0FBQyxZQUFZLEVBQUM7WUFDbEIsRUFBRSxDQUFDLHlDQUF5QyxFQUFDO2dCQUN6QyxlQUFlLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN6QyxlQUFlLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFDSCxRQUFRLENBQUMsV0FBVyxFQUFDO1lBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckIsRUFBRSxDQUFDLHlDQUF5QyxFQUFDLFVBQVMsSUFBSTtnQkFDdEQsZUFBZSxDQUFDLE1BQU0sRUFBRTtxQkFDbkIsSUFBSSxDQUFDO29CQUNGLElBQUksRUFBRSxDQUFDO2dCQUNYLENBQUMsQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUE7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMifQ== | ||||||
| @@ -27,6 +27,7 @@ describe("smartnginx",function(){ | |||||||
|         }); |         }); | ||||||
|     }); |     }); | ||||||
|     describe("NginxConfig",function(){ |     describe("NginxConfig",function(){ | ||||||
|  |         this.timeout(10000); | ||||||
|         it(`"new NginxConfig()" should produce an instance of NginxConfig`,function(){ |         it(`"new NginxConfig()" should produce an instance of NginxConfig`,function(){ | ||||||
|             testNginxConfig = new smartnginx.NginxConfig({ |             testNginxConfig = new smartnginx.NginxConfig({ | ||||||
|                 cfEmail: process.env.CF_EMAIL, |                 cfEmail: process.env.CF_EMAIL, | ||||||
| @@ -42,7 +43,7 @@ describe("smartnginx",function(){ | |||||||
|             }) |             }) | ||||||
|         }); |         }); | ||||||
|         describe(".deploy()",function(){ |         describe(".deploy()",function(){ | ||||||
|             this.timeout(240000); |             this.timeout(600000); | ||||||
|             it("should deploy a config from an instance",function(done){ |             it("should deploy a config from an instance",function(done){ | ||||||
|                 testNginxConfig.deploy() |                 testNginxConfig.deploy() | ||||||
|                     .then(() => { |                     .then(() => { | ||||||
|   | |||||||
| @@ -1,9 +1,6 @@ | |||||||
| import * as plugins from "./smartnginx.plugins"; | import * as plugins from "./smartnginx.plugins"; | ||||||
| import * as CommandModule from "./smartnginx.command"; |  | ||||||
|  |  | ||||||
| // classes | // classes | ||||||
| export {NginxConfig} from "./smartnginx.classes.nginxconfig"; | export {NginxConfig} from "./smartnginx.classes.nginxconfig"; | ||||||
|  | export {NginxProcess} from "./smartnginx.classes.nginxprocess"; | ||||||
| export {NginxZone,zoneTypes} from "./smartnginx.classes.nginxzone"; | export {NginxZone,zoneTypes} from "./smartnginx.classes.nginxzone"; | ||||||
|  |  | ||||||
| // exports |  | ||||||
| export let command = CommandModule; |  | ||||||
| @@ -1,64 +1,65 @@ | |||||||
| import * as plugins from "./smartnginx.plugins"; | import * as plugins from "./smartnginx.plugins"; | ||||||
| import * as paths from "./smartnginx.paths"; | import * as paths from "./smartnginx.paths"; | ||||||
| import * as command from "./smartnginx.command"; | import * as snippets from "./smartnginx.snippets"; | ||||||
| import * as snippets from "./smartnginx.snippets" | import { NginxZone } from "./smartnginx.classes.nginxzone"; | ||||||
| import {NginxZone} from "./smartnginx.classes.nginxzone"; | import { NginxProcess } from "./smartnginx.classes.nginxprocess"; | ||||||
| let allConfigs:NginxConfig[] = []; | let allConfigs: NginxConfig[] = []; | ||||||
|  |  | ||||||
| export class NginxConfig { | export class NginxConfig { | ||||||
|     zones:NginxZone[] = []; |     zones: NginxZone[] = []; | ||||||
|     cert:plugins.cert.Cert; // the Cert Instance from which the config gets its certificates |     cert: plugins.cert.Cert; // the Cert Instance from which the config gets its certificates | ||||||
|     isDeployed:boolean = false; |     nginxProcess: NginxProcess = new NginxProcess(this); | ||||||
|     constructor(optionsArg:plugins.cert.ICertConstructorOptions){ |     isDeployed: boolean = false; | ||||||
|  |     constructor(optionsArg: plugins.cert.ICertConstructorOptions) { | ||||||
|         this.cert = new plugins.cert.Cert({ |         this.cert = new plugins.cert.Cert({ | ||||||
|             cfEmail:optionsArg.cfEmail, |             cfEmail: optionsArg.cfEmail, | ||||||
|             cfKey:optionsArg.cfKey, |             cfKey: optionsArg.cfKey, | ||||||
|             sslDir:paths.nginxCertBase, |             sslDir: paths.nginxCertBase, | ||||||
|             gitOriginRepo:optionsArg.gitOriginRepo, |             gitOriginRepo: optionsArg.gitOriginRepo, | ||||||
|             testMode:optionsArg.testMode |             testMode: optionsArg.testMode | ||||||
|         }); |         }); | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     // interact with Zones |     // interact with Zones | ||||||
|     addZone(zoneArg:NginxZone){ |     addZone(zoneArg: NginxZone){ | ||||||
|         this.zones.push(zoneArg); |         this.zones.push(zoneArg); | ||||||
|     } |     } | ||||||
|     listZones():NginxZone[] { |     listZones(): NginxZone[]{ | ||||||
|         return this.zones; |         return this.zones; | ||||||
|     }; |     }; | ||||||
|     removeZones(zoneArg:NginxZone){ |     removeZones(zoneArg: NginxZone) { | ||||||
|  |  | ||||||
|     } |     } | ||||||
|     clean(){ |     clean() { | ||||||
|         this.zones = []; |         this.zones = []; | ||||||
|     } |     } | ||||||
|     // handle deployment of zones |     // handle deployment of zones | ||||||
|     deploy(nginxRestartArg:boolean = false){ |     deploy() { | ||||||
|         let done = plugins.q.defer(); |         let done = plugins.q.defer(); | ||||||
|         plugins.smartfile.fs.removeSync(paths.nginxConfigBase); |  | ||||||
|         plugins.smartfile.fs.ensureDirSync(paths.nginxConfigBase); |         plugins.smartfile.fs.ensureDirSync(paths.nginxConfigBase); | ||||||
|         plugins.smartfile.fs.ensureDirSync(paths.nginxZoneBase); |         plugins.smartfile.fs.ensureDirSync(paths.nginxZoneBase); | ||||||
|         plugins.smartfile.fs.ensureDirSync(paths.nginxCertBase); |         plugins.smartfile.fs.ensureDirSync(paths.nginxCertBase); | ||||||
|         for(let config of allConfigs){ |         for (let config of allConfigs) { | ||||||
|             config.isDeployed = false; |             config.isDeployed = false; | ||||||
|         }; |         }; | ||||||
|         this.isDeployed = true; |         this.isDeployed = true; | ||||||
|         // write base config |         // write base config | ||||||
|         plugins.smartfile.memory.toFsSync( |         plugins.smartfile.memory.toFsSync( | ||||||
|             snippets.getBaseConfigString(), |             snippets.getBaseConfigString(), | ||||||
|             plugins.path.join(paths.nginxConfigBase,"nginx.conf") |             paths.nginxConfFile | ||||||
|         ); |         ); | ||||||
|         // deploy zones |         // deploy zones | ||||||
|         let promiseArray = []; |         let promiseArray = []; | ||||||
|         for(let zone of this.zones){ |         for (let zone of this.zones) { | ||||||
|             promiseArray.push(zone.deploy(this.cert)); |             let zoneDeployedPromise = zone.deploy(this.cert); | ||||||
|  |             zoneDeployedPromise.then(() => { | ||||||
|  |                 plugins.beautylog.info(`Zone ${zone.zoneName} deployed!`); | ||||||
|  |                 this.nginxProcess.reloadConfig(); | ||||||
|  |             }); | ||||||
|  |             promiseArray.push(zoneDeployedPromise); | ||||||
|         }; |         }; | ||||||
|         plugins.q.all(promiseArray) |         plugins.q.all(promiseArray) | ||||||
|             .then(() => { |             .then(() => { | ||||||
|                 // restart nginx |  | ||||||
|                 if(nginxRestartArg){ |  | ||||||
|                     command.restart(this); |  | ||||||
|                 }; |  | ||||||
|                 done.resolve(); |                 done.resolve(); | ||||||
|             }); |             }); | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										70
									
								
								ts/smartnginx.classes.nginxprocess.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								ts/smartnginx.classes.nginxprocess.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,70 @@ | |||||||
|  | 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; | ||||||
|  |     }; | ||||||
|  | } | ||||||
| @@ -1,32 +1,31 @@ | |||||||
| import * as plugins from "./smartnginx.plugins"; | import * as plugins from "./smartnginx.plugins"; | ||||||
| import * as paths from "./smartnginx.paths"; | import * as paths from "./smartnginx.paths"; | ||||||
| import * as command from "./smartnginx.command"; |  | ||||||
| import * as snippets from "./smartnginx.snippets" | import * as snippets from "./smartnginx.snippets" | ||||||
| export enum zoneTypes { | export enum zoneTypes { | ||||||
|        reverseProxy, |     reverseProxy, | ||||||
|        static  |     static | ||||||
| } | } | ||||||
|  |  | ||||||
| export class NginxZone { | export class NginxZone { | ||||||
|     zoneName:string; // the zone name e.g. domain name |     zoneName: string; // the zone name e.g. domain name | ||||||
|     type:zoneTypes; |     type: zoneTypes; | ||||||
|     destination:string; |     destination: string; | ||||||
|     configString:string; // the actual zone config file as string |     configString: string; // the actual zone config file as string | ||||||
|     constructor(optionsArg:{ |     constructor(optionsArg: { | ||||||
|         zoneName:string, |         zoneName: string, | ||||||
|         type:zoneTypes, |         type: zoneTypes, | ||||||
|         destination:string |         destination: string | ||||||
|     }){ |     }) { | ||||||
|         this.zoneName = optionsArg.zoneName; |         this.zoneName = optionsArg.zoneName; | ||||||
|         this.type = optionsArg.type; |         this.type = optionsArg.type; | ||||||
|         this.destination = optionsArg.destination; |         this.destination = optionsArg.destination; | ||||||
|         this.configString = snippets.getZoneConfigString(optionsArg.zoneName,optionsArg.destination); |         this.configString = snippets.getZoneConfigString(optionsArg.zoneName, optionsArg.destination); | ||||||
|     }; |     }; | ||||||
|     deploy(certInstanceArg:plugins.cert.Cert){ |     deploy(certInstanceArg: plugins.cert.Cert) { | ||||||
|         let done = plugins.q.defer(); |         let done = plugins.q.defer(); | ||||||
|         let filePath = plugins.path.join(paths.nginxZoneBase,this.zoneName + ".conf"); |         let filePath = plugins.path.join(paths.nginxZoneBase, this.zoneName + ".conf"); | ||||||
|         // writeConfig |         // writeConfig | ||||||
|         plugins.smartfile.memory.toFsSync(this.configString,filePath); |         plugins.smartfile.memory.toFsSync(this.configString, filePath); | ||||||
|         // get cert |         // get cert | ||||||
|         certInstanceArg.getDomainCert(this.zoneName) |         certInstanceArg.getDomainCert(this.zoneName) | ||||||
|             .then(done.resolve); |             .then(done.resolve); | ||||||
|   | |||||||
| @@ -1,59 +0,0 @@ | |||||||
| 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) => { |  | ||||||
|     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; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * checks if nginx is in path |  | ||||||
|  */ |  | ||||||
| export let check = ():boolean => { |  | ||||||
|     return; |  | ||||||
| }; |  | ||||||
| @@ -1,6 +1,10 @@ | |||||||
| import * as plugins from "./smartnginx.plugins" | import * as plugins from "./smartnginx.plugins" | ||||||
|  |  | ||||||
|  | // directories | ||||||
| export let packageBase = plugins.path.join(__dirname,"../"); | export let packageBase = plugins.path.join(__dirname,"../"); | ||||||
| export let nginxConfigBase = plugins.path.join(packageBase,"nginxconfig"); | export let nginxConfigBase = plugins.path.join(packageBase,"nginxconfig"); | ||||||
| export let nginxZoneBase = plugins.path.join(nginxConfigBase,"zones"); | export let nginxZoneBase = plugins.path.join(nginxConfigBase,"zones"); | ||||||
| export let nginxCertBase = plugins.path.join(nginxConfigBase,"cert"); | export let nginxCertBase = plugins.path.join(nginxConfigBase,"cert"); | ||||||
|  |  | ||||||
|  | // files | ||||||
|  | export let nginxConfFile = plugins.path.join(nginxConfigBase,"nginx.conf"); | ||||||
		Reference in New Issue
	
	Block a user