From a948938e9d9d4ba5f22f07c5500d956a5c675d0c Mon Sep 17 00:00:00 2001 From: Santeri Kannisto Date: Sat, 2 Jun 2018 09:12:06 +0200 Subject: [PATCH] Bug fix for issue #1328 Added private bash function __urlencode to eliminate the php dependency which failed on godaddy due to multiple php instances and cron using the one without -r option. --- deploy/cpanel_uapi.sh | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/deploy/cpanel_uapi.sh b/deploy/cpanel_uapi.sh index 4563b9c4..fa91396d 100644 --- a/deploy/cpanel_uapi.sh +++ b/deploy/cpanel_uapi.sh @@ -2,11 +2,30 @@ # Here is the script to deploy the cert to your cpanel using the cpanel API. # Uses command line uapi. --user option is needed only if run as root. # Returns 0 when success. -# Written by Santeri Kannisto +# Written by Santeri Kannisto # Public domain, 2017 #export DEPLOY_CPANEL_USER=myusername +######## Private functions ##################### + +__urlencode() { + local string="${1}" + local strlen=${#string} + local encoded="" + local pos c o + + for ((pos = 0; pos < strlen; pos++)); do + c=${string:$pos:1} + case "$c" in + [-_.~a-zA-Z0-9]) o="${c}" ;; + *) printf -v o '%%%02x' "'$c" ;; + esac + encoded+="${o}" + done + echo "${encoded}" +} + ######## Public functions ##################### #domain keyfile certfile cafile fullchain @@ -35,8 +54,8 @@ cpanel_uapi_deploy() { # read cert and key files and urlencode both _certstr=$(cat "$_ccert") _keystr=$(cat "$_ckey") - _cert=$(php -r "echo urlencode(\"$_certstr\");") - _key=$(php -r "echo urlencode(\"$_keystr\");") + _cert=$(__urlencode "$_certstr") + _key=$(__urlencode "$_keystr") _debug _cert "$_cert" _debug _key "$_key"