]> git.street.me.uk Git - andy/dehydrated.git/commitdiff
parse challenges json differently to be compatible with bsd sed
authorLukas Schauer <lukas@schauer.so>
Mon, 7 Dec 2015 11:08:30 +0000 (12:08 +0100)
committerLukas Schauer <lukas@schauer.so>
Mon, 7 Dec 2015 11:08:30 +0000 (12:08 +0100)
letsencrypt.sh

index e7eac3cb62e5023dcdbcc9cfca0f6e9e1b3e0df5..804395c811400e29538008c19ddf5efd4274a8ef 100755 (executable)
@@ -140,8 +140,10 @@ sign_domain() {
     echo " + Requesting challenge for ${altname}..."
     response="$(signed_request "${CA}/acme/new-authz" '{"resource": "new-authz", "identifier": {"type": "dns", "value": "'"${altname}"'"}}')"
 
-    challenge_token="$(printf '%s\n' "${response}" | grep -Eo '"challenges":[^\[]*\[[^]]*]' | sed 's/{/\n{/g' | grep 'http-01' | grep -Eo '"token":\s*"[^"]*"' | cut -d'"' -f4 | sed 's/[^A-Za-z0-9_\-]/_/g')"
-    challenge_uri="$(printf '%s\n' "${response}" | grep -Eo '"challenges":[^\[]*\[[^]]*]' | sed 's/{/\n{/g' | grep 'http-01' | grep -Eo '"uri":\s*"[^"]*"' | cut -d'"' -f4)"
+    challenges="$(printf '%s\n' "${response}" | grep -Eo '"challenges":[^\[]*\[[^]]*]')"
+    challenge="$(printf "%s" "${challenges//\{/$'\n'{}" | grep 'http-01')"
+    challenge_token="$(printf '%s' "${challenge}" | grep -Eo '"token":\s*"[^"]*"' | cut -d'"' -f4 | sed 's/[^A-Za-z0-9_\-]/_/g')"
+    challenge_uri="$(printf '%s' "${challenge}" | grep -Eo '"uri":\s*"[^"]*"' | cut -d'"' -f4)"
 
     if [[ -z "${challenge_token}" ]] || [[ -z "${challenge_uri}" ]]; then
       echo "  + Error: Can't retrieve challenges (${response})"