| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/usr/bin/node
- // Usage:
- // Install all plugins defined in `../certbot/dns-plugins.json`:
- // ./install-certbot-plugins
- // Install one or more specific plugins:
- // ./install-certbot-plugins route53 cloudflare
- //
- // Usage with a running docker container:
- // docker exec npm_core /command/s6-setuidgid 1000:1000 bash -c "/app/scripts/install-certbot-plugins"
- //
- import batchflow from "batchflow";
- import dnsPlugins from "../certbot/dns-plugins.json" with { type: "json" };
- import { installPlugin } from "../lib/certbot.js";
- import { certbot as logger } from "../logger.js";
- let hasErrors = false;
- const failingPlugins = [];
- let pluginKeys = Object.keys(dnsPlugins);
- if (process.argv.length > 2) {
- pluginKeys = process.argv.slice(2);
- }
- batchflow(pluginKeys)
- .sequential()
- .each((i, pluginKey, next) => {
- installPlugin(pluginKey)
- .then(() => {
- next();
- })
- .catch((err) => {
- hasErrors = true;
- failingPlugins.push(pluginKey);
- next(err);
- });
- })
- .error((err) => {
- logger.error(err.message);
- })
- .end(() => {
- if (hasErrors) {
- logger.error(
- "Some plugins failed to install. Please check the logs above. Failing plugins: " +
- "\n - " +
- failingPlugins.join("\n - "),
- );
- process.exit(1);
- } else {
- logger.complete("Plugins installed successfully");
- process.exit(0);
- }
- });
|