2016-07-06 01:14:44 +00:00
|
|
|
"use strict";
|
2016-07-21 00:24:54 +00:00
|
|
|
const plugins = require("./smartnginx.plugins");
|
|
|
|
const paths = require("./smartnginx.paths");
|
|
|
|
const snippets = require("./smartnginx.snippets");
|
2016-07-24 23:54:36 +00:00
|
|
|
const smartnginx_classes_nginxprocess_1 = require("./smartnginx.classes.nginxprocess");
|
2016-07-21 00:24:54 +00:00
|
|
|
let allConfigs = [];
|
|
|
|
class NginxConfig {
|
|
|
|
constructor(optionsArg) {
|
2016-07-08 02:24:07 +00:00
|
|
|
this.zones = [];
|
2016-07-24 23:54:36 +00:00
|
|
|
this.nginxProcess = new smartnginx_classes_nginxprocess_1.NginxProcess(this);
|
2016-07-06 04:33:31 +00:00
|
|
|
this.isDeployed = false;
|
2016-07-12 21:20:08 +00:00
|
|
|
this.cert = new plugins.cert.Cert({
|
|
|
|
cfEmail: optionsArg.cfEmail,
|
|
|
|
cfKey: optionsArg.cfKey,
|
2016-07-13 11:04:48 +00:00
|
|
|
sslDir: paths.nginxCertBase,
|
|
|
|
gitOriginRepo: optionsArg.gitOriginRepo,
|
|
|
|
testMode: optionsArg.testMode
|
2016-07-12 21:20:08 +00:00
|
|
|
});
|
2016-07-06 01:14:44 +00:00
|
|
|
}
|
|
|
|
;
|
2016-07-06 01:33:39 +00:00
|
|
|
// interact with Zones
|
2016-07-21 00:24:54 +00:00
|
|
|
addZone(zoneArg) {
|
2016-07-08 02:24:07 +00:00
|
|
|
this.zones.push(zoneArg);
|
2016-07-21 00:24:54 +00:00
|
|
|
}
|
|
|
|
listZones() {
|
2016-07-06 01:33:39 +00:00
|
|
|
return this.zones;
|
2016-07-21 00:24:54 +00:00
|
|
|
}
|
2016-07-06 01:33:39 +00:00
|
|
|
;
|
2016-07-21 00:24:54 +00:00
|
|
|
removeZones(zoneArg) {
|
|
|
|
}
|
|
|
|
clean() {
|
|
|
|
this.zones = [];
|
|
|
|
}
|
2016-07-06 01:33:39 +00:00
|
|
|
// handle deployment of zones
|
2016-07-24 23:54:36 +00:00
|
|
|
deploy() {
|
2016-07-21 00:24:54 +00:00
|
|
|
let done = plugins.q.defer();
|
2016-07-08 02:24:07 +00:00
|
|
|
plugins.smartfile.fs.ensureDirSync(paths.nginxConfigBase);
|
|
|
|
plugins.smartfile.fs.ensureDirSync(paths.nginxZoneBase);
|
2016-07-12 21:20:08 +00:00
|
|
|
plugins.smartfile.fs.ensureDirSync(paths.nginxCertBase);
|
2016-07-21 00:24:54 +00:00
|
|
|
for (let config of allConfigs) {
|
2016-07-06 04:33:31 +00:00
|
|
|
config.isDeployed = false;
|
|
|
|
}
|
|
|
|
;
|
|
|
|
this.isDeployed = true;
|
2016-07-12 21:20:08 +00:00
|
|
|
// write base config
|
2016-07-24 23:54:36 +00:00
|
|
|
plugins.smartfile.memory.toFsSync(snippets.getBaseConfigString(), paths.nginxConfFile);
|
2016-07-12 21:20:08 +00:00
|
|
|
// deploy zones
|
2016-07-21 00:24:54 +00:00
|
|
|
let promiseArray = [];
|
|
|
|
for (let zone of this.zones) {
|
2016-07-24 23:54:36 +00:00
|
|
|
let zoneDeployedPromise = zone.deploy(this.cert);
|
|
|
|
zoneDeployedPromise.then(() => {
|
|
|
|
plugins.beautylog.info(`Zone ${zone.zoneName} deployed!`);
|
|
|
|
this.nginxProcess.reloadConfig();
|
|
|
|
});
|
|
|
|
promiseArray.push(zoneDeployedPromise);
|
2016-07-06 04:33:31 +00:00
|
|
|
}
|
2016-07-08 02:24:07 +00:00
|
|
|
;
|
2016-07-12 21:20:08 +00:00
|
|
|
plugins.q.all(promiseArray)
|
2016-07-21 00:24:54 +00:00
|
|
|
.then(() => {
|
2016-07-12 21:20:08 +00:00
|
|
|
done.resolve();
|
|
|
|
});
|
|
|
|
return done.promise;
|
2016-07-21 00:24:54 +00:00
|
|
|
}
|
2016-07-06 01:14:44 +00:00
|
|
|
;
|
2016-07-21 00:24:54 +00:00
|
|
|
}
|
2016-07-06 01:14:44 +00:00
|
|
|
exports.NginxConfig = NginxConfig;
|
|
|
|
;
|
2016-07-24 23:54:36 +00:00
|
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRuZ2lueC5jbGFzc2VzLm5naW54Y29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRuZ2lueC5jbGFzc2VzLm5naW54Y29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxNQUFZLE9BQU8sV0FBTSxzQkFBc0IsQ0FBQyxDQUFBO0FBQ2hELE1BQVksS0FBSyxXQUFNLG9CQUFvQixDQUFDLENBQUE7QUFDNUMsTUFBWSxRQUFRLFdBQU0sdUJBQXVCLENBQUMsQ0FBQTtBQUVsRCxrREFBNkIsbUNBQW1DLENBQUMsQ0FBQTtBQUNqRSxJQUFJLFVBQVUsR0FBa0IsRUFBRSxDQUFDO0FBRW5DO0lBS0ksWUFBWSxVQUFnRDtRQUo1RCxVQUFLLEdBQWdCLEVBQUUsQ0FBQztRQUV4QixpQkFBWSxHQUFpQixJQUFJLDhDQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUV4QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDOUIsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO1lBQzNCLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSztZQUN2QixNQUFNLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDM0IsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhO1lBQ3ZDLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtTQUNoQyxDQUFDLENBQUM7SUFDUCxDQUFDOztJQUVELHNCQUFzQjtJQUN0QixPQUFPLENBQUMsT0FBa0I7UUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELFNBQVM7UUFDTCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDOztJQUNELFdBQVcsQ0FBQyxPQUFrQjtJQUU5QixDQUFDO0lBQ0QsS0FBSztRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCw2QkFBNkI7SUFDN0IsTUFBTTtRQUNGLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsR0FBRyxDQUFDLENBQUMsSUFBSSxNQUFNLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQztZQUM1QixNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUM5QixDQUFDO1FBQUEsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLG9CQUFvQjtRQUNwQixPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQzdCLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxFQUM5QixLQUFLLENBQUMsYUFBYSxDQUN0QixDQUFDO1FBQ0YsZUFBZTtRQUNmLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN0QixHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMxQixJQUFJLG1CQUFtQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pELG1CQUFtQixDQUFDLElBQUksQ0FBQztnQkFDckIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxZQUFZLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztZQUNILFlBQVksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQUEsQ0FBQztRQUNGLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQzthQUN0QixJQUFJLENBQUM7WUFDRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFFUCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDOztBQUNMLENBQUM7QUE1RFksbUJBQVcsY0E0RHZCLENBQUE7QUFBQSxDQUFDIn0=
|