From 3a107cfe7ec61694547e81302f7d018d7d9223bd Mon Sep 17 00:00:00 2001 From: "Alex Pooley (@zuedev)" Date: Thu, 7 May 2026 23:21:45 +0100 Subject: enhance mirror script with jq --- Dockerfile.debian | 1 + scripts/push-repo-mirrors.bash | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Dockerfile.debian b/Dockerfile.debian index 7379f23..f5b40ca 100644 --- a/Dockerfile.debian +++ b/Dockerfile.debian @@ -8,6 +8,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ openssh-server \ git \ cron \ + jq \ && rm -rf /var/lib/apt/lists/* # Create the privilage separation directory as openssh-server post-install script doesn't do it in docker build context diff --git a/scripts/push-repo-mirrors.bash b/scripts/push-repo-mirrors.bash index e25d39f..ae63307 100644 --- a/scripts/push-repo-mirrors.bash +++ b/scripts/push-repo-mirrors.bash @@ -22,12 +22,13 @@ for repository in /repositories/*; do echo "gitinfoContents: $gitinfoContents" # extract mirrors from gitinfo (json format) - mirrors=$(echo "$gitinfoContents" | grep -oP '"mirrors":\s*\[\K[^\]]+') + mirrors=$(echo "$gitinfoContents" | jq -r '.mirrors[]') echo "Extracted mirrors: $mirrors" # push to each mirror - for mirror in $(echo "$mirrors" | tr ',' '\n'); do + while IFS= read -r mirror; do + [ -z "$mirror" ] && continue case "$mirror" in *github.com*) # do we have a /run/secrets/github_token defined? @@ -45,5 +46,5 @@ for repository in /repositories/*; do echo "Unknown mirror type: $mirror. Skipping." ;; esac - done + done <<< "$mirrors" done \ No newline at end of file -- cgit v1.2.3