2016-08-05 07:54:57 +00:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
var fs = require('fs');
|
|
|
|
var path = require('path');
|
|
|
|
|
2016-08-05 08:10:33 +00:00
|
|
|
var defaults = {
|
|
|
|
webrootPath: '~/letsencrypt/var/lib'
|
|
|
|
, debug: false
|
2016-08-05 07:54:57 +00:00
|
|
|
};
|
|
|
|
|
2016-08-05 08:10:33 +00:00
|
|
|
var Challenger = module.exports;
|
|
|
|
|
|
|
|
Challenger.create = function (options) {
|
|
|
|
var results = {};
|
|
|
|
|
|
|
|
Object.keys(Challenger).forEach(function (key) {
|
|
|
|
results[key] = Challenger[key];
|
|
|
|
});
|
|
|
|
|
|
|
|
results._options = options;
|
|
|
|
|
|
|
|
Object.keys(defaults).forEach(function (key) {
|
|
|
|
if (!(key in options)) {
|
|
|
|
options[key] = defaults[key];
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
results.getOptions = function () {
|
|
|
|
return results._options;
|
|
|
|
};
|
|
|
|
|
|
|
|
return results;
|
|
|
|
};
|
|
|
|
|
|
|
|
Challenger.setChallenge = function (args, domain, challengePath, keyAuthorization, done) {
|
2016-08-05 07:54:57 +00:00
|
|
|
var mkdirp = require('mkdirp');
|
|
|
|
|
|
|
|
mkdirp(args.webrootPath, function (err) {
|
|
|
|
if (err) {
|
|
|
|
done(err);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
fs.writeFile(path.join(args.webrootPath, challengePath), keyAuthorization, 'utf8', function (err) {
|
|
|
|
done(err);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2016-08-05 08:10:33 +00:00
|
|
|
Challenger.getChallenge = function (args, domain, key, done) {
|
2016-08-05 07:54:57 +00:00
|
|
|
fs.readFile(path.join(args.webrootPath, key), 'utf8', done);
|
|
|
|
};
|
|
|
|
|
2016-08-05 08:10:33 +00:00
|
|
|
Challenger.removeChallenge = function (args, domain, key, done) {
|
2016-08-05 07:54:57 +00:00
|
|
|
fs.unlink(path.join(args.webrootPath, key), done);
|
|
|
|
};
|