merge upstream

This commit is contained in:
Zoey
2024-01-20 14:34:47 +01:00
parent 04dd76f9eb
commit aeebd0841e
7 changed files with 350 additions and 527 deletions

View File

@@ -1,11 +1,9 @@
const dnsPlugins = require('../global/certbot-dns-plugins.json');
const dnsPlugins = require('../certbot-dns-plugins.json');
const utils = require('./utils');
const error = require('./error');
const logger = require('../logger').certbot;
const batchflow = require('batchflow');
const CERTBOT_VERSION_REPLACEMENT = '$(certbot --version | grep -Eo \'[0-9](\\.[0-9]+)+\')';
const certbot = {
/**
@@ -59,10 +57,7 @@ const certbot = {
const plugin = dnsPlugins[pluginKey];
logger.start(`Installing ${pluginKey}...`);
plugin.version = plugin.version.replace(/{{certbot-version}}/g, CERTBOT_VERSION_REPLACEMENT);
plugin.dependencies = plugin.dependencies.replace(/{{certbot-version}}/g, CERTBOT_VERSION_REPLACEMENT);
const cmd = '. /opt/certbot/bin/activate && pip install --no-cache-dir ' + plugin.dependencies + ' ' + plugin.package_name + plugin.version + ' ' + ' && deactivate';
const cmd = 'pip install --no-cache-dir ' + plugin.package_name;
return utils.exec(cmd)
.then((result) => {
logger.complete(`Installed ${pluginKey}`);

View File

@@ -8,6 +8,10 @@ const error = require('./error');
module.exports = {
/**
* @param {String} cmd
*/
exec: async function(cmd, options = {}) {
logger.debug('CMD:', cmd);
@@ -29,7 +33,29 @@ module.exports = {
/**
* @param {String} cmd
* @returns {Promise}
* @param {Array} args
*/
execFile: async function (cmd, args, options = {}) {
logger.debug('CMD: ' + cmd + ' ' + (args ? args.join(' ') : ''));
const { stdout, stderr } = await new Promise((resolve, reject) => {
const child = execFile(cmd, args, options, (isError, stdout, stderr) => {
if (isError) {
reject(new error.CommandError(stderr, isError));
} else {
resolve({ stdout, stderr });
}
});
child.on('error', (e) => {
reject(new error.CommandError(stderr, 1, e));
});
});
return stdout;
},
/**
* @param {String} cmd
*/
execfg: function (cmd) {
return new Promise((resolve, reject) => {
@@ -53,26 +79,6 @@ module.exports = {
});
},
/**
* @param {String} cmd
* @param {Array} args
* @returns {Promise}
*/
execFile: function (cmd, args) {
// logger.debug('CMD: ' + cmd + ' ' + (args ? args.join(' ') : ''));
return new Promise((resolve, reject) => {
execFile(cmd, args, function (err, stdout, /*stderr*/) {
if (err && typeof err === 'object') {
reject(err);
} else {
resolve(stdout.trim());
}
});
});
},
/**
* Used in objection query builder
*