--- src/proxmox-acme/proxmox-acme | 78 +++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+)
diff --git a/src/proxmox-acme/proxmox-acme b/src/proxmox-acme/proxmox-acme index 662c39a..6da9436 100644 --- a/src/proxmox-acme/proxmox-acme +++ b/src/proxmox-acme/proxmox-acme @@ -1,5 +1,12 @@ #!/usr/bin/env sh +VER=0.9 + +PROJECT_NAME="ProxmoxACME" + +USER_AGENT="$PROJECT_NAME/$VER" + +DNS_PLUGIN_PATH="/var/lib/proxmox-acme/dnsapi" HTTP_HEADER="$(mktemp)" _base64() { @@ -568,3 +575,74 @@ _source_plugin_config() { return } +# Proxmox implementation +_load_plugin_config() { + + tmp_str="${plugin_conf_sting//[^,]}" + index="$(_math ${#tmp_str} + 1)" + + while [ "$index" -gt "0" ] + do + field=$(_getfield $plugin_conf_sting "$index" ",") + key=$(_getfield $field 1 "=") + value=$(_getfield $field 2 "=") + eval "$key"="$value" + + index="$(_math "$index" - 1)" + done + +} + +setup() { + dns_plugin="dns_$1" + dns_plugin_path="${DNS_PLUGIN_PATH}/${dns_plugin}.sh" + fqdn="_acme-challenge.$2" + txtvalue=$3 + plugin_conf_sting=$4 + + _load_plugin_config + + if ! . "$dns_plugin_path"; then + _err "Load file $dns_plugin error." + return 1 + fi + + addcommand="${dns_plugin}_add" + if ! _exists "$addcommand"; then + _err "It seems that your api file is not correct, it must have a function named: $addcommand" + return 1 + fi + + if ! $addcommand "$fqdn" "$txtvalue"; then + _err "Error add txt for domain:$fulldomain" + return 1 + fi +} + +teardown() { + dns_plugin="dns_$1" + dns_plugin_path="${DNS_PLUGIN_PATH}/${dns_plugin}.sh" + fqdn="_acme-challenge.$2" + txtvalue=$3 + plugin_conf_sting=$4 + + _load_plugin_config + + if ! . "$dns_plugin_path"; then + _err "Load file $dns_plugin error." + return 1 + fi + + rmcommand="${dns_plugin}_rm" + if ! _exists "$rmcommand"; then + _err "It seems that your api file is not correct, it must have a function named: $rmcommand" + return 1 + fi + + if ! $rmcommand "$fqdn" "$txtvalue"; then + _err "Error add txt for domain:$fulldomain" + return 1 + fi +} + +"$@" -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel