51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
var PromiseA = require('bluebird');
|
|
var pyconf = PromiseA.promisifyAll(require('pyconf'));
|
|
var mkdirpAsync = PromiseA.promisify(require('mkdirp'));
|
|
var path = require('path');
|
|
|
|
pyconf.readFileAsync(path.join(__dirname, 'lib', 'renewal.conf.tpl')).then(function (obj) {
|
|
var domains = ['example.com', 'www.example.com'];
|
|
var webrootPath = '/tmp/www/example.com';
|
|
|
|
console.log(obj);
|
|
|
|
var keys = obj.__keys;
|
|
var lines = obj.__lines;
|
|
|
|
obj.__keys = null;
|
|
obj.__lines = null;
|
|
|
|
var updates = {
|
|
account: 'ACCOUNT_ID'
|
|
|
|
, cert: 'CERT_PATH'
|
|
, privkey: 'PRIVATEKEY_PATH'
|
|
, configDir: 'CONFIG_DIR'
|
|
, tos: true
|
|
, http01Port: 80
|
|
, domains: domains
|
|
};
|
|
|
|
// final section is completely dynamic
|
|
// :hostname = :webroot_path
|
|
domains.forEach(function (hostname) {
|
|
updates[hostname] = webrootPath;
|
|
});
|
|
|
|
// must write back to the original object or
|
|
// annotations will be lost
|
|
Object.keys(updates).forEach(function (key) {
|
|
obj[key] = updates[key];
|
|
});
|
|
|
|
var renewalPath = '/tmp/letsencrypt/renewal/example.com.conf';
|
|
return mkdirpAsync(path.dirname(renewalPath)).then(function () {
|
|
console.log(obj);
|
|
obj.__keys = keys;
|
|
obj.__lines = lines;
|
|
return pyconf.writeFileAsync(renewalPath, obj);
|
|
});
|
|
});
|