aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorMattias Andrée <m@maandree.se>2026-05-29 21:23:13 +0200
committerMattias Andrée <m@maandree.se>2026-05-29 21:23:13 +0200
commit71d8bd925ecb1015b94bce5f8726e397022f2a8f (patch)
treeb451255281bc4e428d7c60995f0f17f867e2e84f /util
parentFix error handling and make util/ setup and domain agnostic (diff)
downloadrelease-scripts-71d8bd925ecb1015b94bce5f8726e397022f2a8f.tar.gz
release-scripts-71d8bd925ecb1015b94bce5f8726e397022f2a8f.tar.bz2
release-scripts-71d8bd925ecb1015b94bce5f8726e397022f2a8f.tar.xz
Add add-github-mirrorHEADmaster
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to 'util')
-rw-r--r--util/README7
-rwxr-xr-xutil/add-mirror16
-rwxr-xr-xutil/check-mirror40
3 files changed, 63 insertions, 0 deletions
diff --git a/util/README b/util/README
index cc72f08..36426f1 100644
--- a/util/README
+++ b/util/README
@@ -62,6 +62,13 @@ get-and-check tarball-url reference-dir work-dir
checksums.
+check-mirror tarball-url ref-tarball work-dir
+
+ This is the same as get-and-check except it expects a
+ known good tarball as the second argument instead of a
+ known good git repository
+
+
gen-checksums tarball git-dir < tarball-url-list > checksum-listing
This brings all of the above together. The tarball,
diff --git a/util/add-mirror b/util/add-mirror
new file mode 100755
index 0000000..70f9496
--- /dev/null
+++ b/util/add-mirror
@@ -0,0 +1,16 @@
+#!/bin/sh
+# See LICENSE file for copyright and license details.
+
+set -e
+
+if test ! $# = 2 || test -t 0 || test -t 1; then
+ printf 'usage: %s tarball-url ref-tarball < old-checksums > all-checksums\n' "$0" >&2
+ exit 1
+fi
+
+utildir="$(dirname -- "$0")"
+(cd -- "${utildir}" && (make >/dev/null 2>/dev/null || make))
+
+new_checksums="$("${utildir}"/tmpmount /var/empty "${utildir}"/check-mirror "$1" "$2" /var/empty)"
+
+(printf '%s\n' "${new_checksums}"; cat) | "${utildir}"/order-checksums
diff --git a/util/check-mirror b/util/check-mirror
new file mode 100755
index 0000000..ecf01b7
--- /dev/null
+++ b/util/check-mirror
@@ -0,0 +1,40 @@
+#!/bin/sh
+# See LICENSE file for copyright and license details.
+
+set -e
+
+if ! test $# = 3; then
+ printf 'usage: %s tarball-url ref-tarball work-dir\n' "$0" >&2
+ exit 1
+fi
+
+utildir="$(dirname -- "$0")"
+tarball="$3/download-$$.tar.gz"
+refdir="$3/$$.refdir"
+tmpdir="$3/$$.tmpdir"
+
+rm -rf -- "${refdir}"
+rm -rf -- "${tmpdir}"
+mkdir -- "${refdir}"
+mkdir -- "${tmpdir}"
+
+curl -sL -- "$1" > "${tarball}"
+gunzip < "${tarball}" | (cd -- "${tmpdir}" && tar -x)
+gunzip < "$2" | (cd -- "${refdir}" && tar -x)
+(cd -- "${refdir}"/*/ && find -print0) > "$3/listing-1"
+(cd -- "${tmpdir}"/*/ && find -print0) > "$3/listing-2"
+
+set +e
+"${utildir}"/repodiff "${refdir}"/* "$3/listing-1" "${tmpdir}"/* "$3/listing-2"
+ret=$?
+set -e
+
+rm -rf -- "${refdir}"
+rm -rf -- "${tmpdir}"
+
+if test $ret = 0; then
+ "${utildir}"/get-checksums "${tarball}"
+fi
+
+rm -f -- "${tarball}"
+exit $ret