Browse Source

added saving of cPanel_Hostname

Bjarne Saltbaek 4 years ago
parent
commit
d2d023cca7
1 changed files with 17 additions and 10 deletions
  1. 17 10
      dnsapi/dns_cpanel.sh

+ 17 - 10
dnsapi/dns_cpanel.sh

@@ -1,6 +1,7 @@
-#!/bin/bash
+#!/usr/bin/env sh
+#
 #Author: Bjarne Saltbaek
-#Report Bugs here: https://github.com/acmesh-official/acme.sh
+#Report Bugs here: https://github.com/acmesh-official/acme.sh/issues/3732
 #
 #
 ########  Public functions #####################
@@ -10,8 +11,11 @@
 # cPanel_Username=username
 # cPanel_Apitoken=apitoken
 # cPanel_Hostname=hostname
+#
+# Note: the program 'jq' must be availble on your system
 
-#Usage: dns_cpanel_add   _acme-challenge.www.domain.com   "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
+# Usage: add   _acme-challenge.www.domain.com   "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
+# Used to add txt record
 dns_cpanel_add() {
   fulldomain=$1
   txtvalue=$2
@@ -26,7 +30,7 @@ dns_cpanel_add() {
   fi
 
   _debug "First detect the root zone"
-  if ! _get_domain "$fulldomain"; then
+  if ! _get_root "$fulldomain"; then
     _err "No matching root domain for $fulldomain found"
     return 1
   fi
@@ -40,8 +44,8 @@ dns_cpanel_add() {
   return 1
 }
 
-#Usage: fulldomain txtvalue
-#Remove the txt record after validation.
+# Usage: fulldomain txtvalue
+# Used to remove the txt record after validation
 dns_cpanel_rm() {
   fulldomain=$1
   txtvalue=$2
@@ -55,7 +59,7 @@ dns_cpanel_rm() {
     return 1
   fi
 
-  if ! _get_domain; then
+  if ! _get_root; then
     _err "No matching root domain for $fulldomain found"
     return 1
   fi
@@ -79,17 +83,20 @@ dns_cpanel_rm() {
 _checkcredentials() {
   cPanel_Username="${cPanel_Username:-$(_readaccountconf_mutable cPanel_Username)}"
   cPanel_Apitoken="${cPanel_Apitoken:-$(_readaccountconf_mutable cPanel_Apitoken)}"
+  cPanel_Hostname="${cPanel_Hostname:-$(_readaccountconf_mutable cPanel_Hostname)}"
 
-  if [ -z "$cPanel_Username" ] || [ -z "$cPanel_Apitoken" ]; then
+  if [ -z "$cPanel_Username" ] || [ -z "$cPanel_Apitoken" ] || [ -z "$cPanel_Hostname" ]; then
     cPanel_Username=""
     cPanel_Apitoken=""
-    _err "You haven't specified cPanel username and apitoken yet."
+    cPanel_Hostname=""
+    _err "You haven't specified cPanel username, apitoken and hostname yet."
     _err "Please add credentials and try again."
     return 1
   fi
   #save the credentials to the account conf file.
   _saveaccountconf_mutable cPanel_Username "$cPanel_Username"
   _saveaccountconf_mutable cPanel_Apitoken "$cPanel_Apitoken"
+  _saveaccountconf_mutable cPanel_Hostname "$cPanel_Hostname"
   return 0
 }
 
@@ -109,7 +116,7 @@ _myget() {
   _result=$(_get "$cPanel_Hostname/$1")
 }
 
-_get_domain() {
+_get_root() {
   _myget 'json-api/cpanel?cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=fetchzones'
   _domains=$(echo "$_result" | jq '.cpanelresult.data[]| {zones}| .zones| keys' | sed -e 's/"//g' -e 's/,//g' -e 's/\[//g' -e 's/\]//g' -e '/^$/d' -e 's/[[:space:]]//g')
   _debug "_result is: $_result"