smartnginx/ts/smartnginx.classes.nginxzone.ts

35 lines
1.2 KiB
TypeScript
Raw Permalink Normal View History

2016-07-06 06:30:33 +00:00
import * as plugins from "./smartnginx.plugins";
import * as paths from "./smartnginx.paths";
import * as command from "./smartnginx.command";
import * as snippets from "./smartnginx.snippets"
export enum zoneTypes {
reverseProxy,
static
}
export class NginxZone {
zoneName:string; // the zone name e.g. domain name
2016-07-08 02:24:07 +00:00
type:zoneTypes;
destination:string;
2016-07-06 06:30:33 +00:00
configString:string; // the actual zone config file as string
constructor(optionsArg:{
zoneName:string,
type:zoneTypes,
destination:string
}){
2016-07-08 02:24:07 +00:00
this.zoneName = optionsArg.zoneName;
this.type = optionsArg.type;
this.destination = optionsArg.destination;
2016-07-06 06:30:33 +00:00
this.configString = snippets.getZoneConfigString(optionsArg.zoneName,optionsArg.destination);
};
2016-07-12 21:11:57 +00:00
deploy(certInstanceArg:plugins.cert.Cert){
let done = plugins.q.defer();
2016-07-06 06:30:33 +00:00
let filePath = plugins.path.join(paths.nginxZoneBase,this.zoneName + ".conf");
2016-07-12 21:11:57 +00:00
// writeConfig
2016-07-06 06:30:33 +00:00
plugins.smartfile.memory.toFsSync(this.configString,filePath);
2016-07-12 21:11:57 +00:00
// get cert
certInstanceArg.getDomainCert(this.zoneName)
.then(done.resolve);
return done.promise;
2016-07-06 06:30:33 +00:00
};
};