From 140c558b87ea6385e8bed4bb64fac2975e393360 Mon Sep 17 00:00:00 2001
From: thelamer <ryankuba@gmail.com>
Date: Fri, 7 May 2021 17:47:37 -0700
Subject: [PATCH] install and use jq to parse json returns

---
 root/docker-mods | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/root/docker-mods b/root/docker-mods
index 5916fbd..fec9f3d 100755
--- a/root/docker-mods
+++ b/root/docker-mods
@@ -12,11 +12,13 @@ if [ ! -f /usr/bin/curl ]; then
     ## Ubuntu
     apt-get update
     apt-get install --no-install-recommends -y \
-      curl
+      curl \
+      jq
   elif [ -f /sbin/apk ]; then
     # Alpine
     apk add --no-cache \
-      curl
+      curl \
+      jq
   fi
 fi
 
@@ -30,19 +32,14 @@ get_blob_sha () {
       --location \
       --request GET \
       --header "Authorization: Bearer $2" \
-      $3 |\
-      grep -A4 'layers' |\
-      grep -m1 'digest' |\
-      awk -F'"' '{print $4}'
+      $3 | jq -r '.layers[0].digest'
   else
     curl \
       --silent \
       --location \
       --request GET \
       --header "Authorization: Bearer $2" \
-      $3 |\
-      grep -m1 "blobSum" |\
-      awk -F'"' '{print $4}'
+      $3 | jq -r '.fsLayers[0].blobSum'
   fi
 }
 
@@ -101,8 +98,7 @@ for DOCKER_MOD in "${DOCKER_MODS[@]}"; do
     --silent \
     --header 'GET' \
     "${AUTH_URL}" \
-    | grep -m1 "token" \
-    | awk -F'"' '{print $4}' \
+    | jq -r '.token' \
   )"
   # Determine first and only layer of image
   SHALAYER=$(get_blob_sha "${MODE}" "${TOKEN}" "${MANIFEST_URL}")
-- 
GitLab