acme.sh DNS plugins expect a configuration in which the login information
is stored.
We pass the credentials with the command.
This function supports the expected behavior of the plugins.

Signed-off-by: Wolfgang Link <w.l...@proxmox.com>
---
 src/proxmox-acme | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/src/proxmox-acme b/src/proxmox-acme
index 662c39a..b4e01d8 100644
--- a/src/proxmox-acme
+++ b/src/proxmox-acme
@@ -568,3 +568,22 @@ _source_plugin_config() {
   return
 }
 
+# Proxmox implementation to inject the DNSAPI variables
+_load_plugin_config() {
+    tmp_str="${plugin_conf_string//[^,]}"
+    index="$(_math ${#tmp_str} + 1)"
+    while [ "$index" -gt "0" ]
+    do
+       field=$(_getfield $plugin_conf_string "$index" ",")
+       ADDR=(${field/=/ })
+       key="${ADDR[0]}"
+       value="${ADDR[1]}"
+
+       # decode base64 encoded values
+       value=$(echo $value | /usr/bin/openssl base64 -d -A)
+
+       # acme.sh uses eval insted of export
+       export "$key"="$value"
+       index="$(_math "$index" - 1)"
+    done
+}
-- 
2.20.1


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to