update.sh: add checksum to update log for the update delta

The cksum utility is sued for the value.
It's not cryptographically secure, but this is just a simple update
check. The actual cryptographic verification is already done by
verifycerts(). Plus, cksum is POSIX amd universally available.
gf-arm64
FriendlyNeighborhoodShane 3 years ago
parent 2d6f3ec4fd
commit ea843f931f

@ -34,17 +34,22 @@ updatedelta() {
file="$entry";
line="$(grep "FILE: $file[,;]" "$reldir/update-$newlog.log" | head -n1)";
url="$(echo "$line" | grep -oE "URL: [^,;]*" | cut -d" " -f2)";
cksum="$(echo "$line" | grep -oE "CKSUM: [^,;]*" | cut -d" " -f2)";
oldline="";
for log in $oldlogs; do
oldline="$(grep "FILE: $file[,;]" "$reldir/update-$log.log" | head -n1)";
[ "$oldline" ] && break;
done;
oldurl="$(echo "$oldline" | grep -oE "URL: [^,;]*" | cut -d" " -f2)";
oldcksum="$(echo "$oldline" | grep -oE "CKSUM: [^,;]*" | cut -d" " -f2)";
[ "$oldurl" ] || oldurl="None";
[ "$url" = "$oldurl" ] && continue;
[ "$oldcksum" ] || oldcksum="None";
[ "$url" = "$oldurl" ] && [ "$cksum" = "$oldcksum" ] && continue;
echo " -- Updated file: $file";
echo " ++ Old URL: $oldurl";
echo " ++ New URL: $url";
echo " ++ Old CKSUM: $oldcksum";
echo " ++ New CKSUM: $cksum";
echo " ++ Old name: $(basename "$oldurl")";
echo " ++ New name: $(basename "$url")";
done;

@ -39,7 +39,7 @@ echo "-- Minimal MicroG Update Script --";
echo "-- The Essentials Only MicroG Pack --";
# Bin check
for bin in chmod cp curl find grep head jq mv rm sort tr unzip; do
for bin in chmod cksum cp curl find grep head jq mv rm sort tr unzip; do
command -v "$bin" >/dev/null || abort "No $bin found";
done;
@ -165,7 +165,8 @@ for object in $(echo "$stuff_download" | select_word 1); do
objectfile="$tmpdir/$objectname";
echo " ---- Downloading $objecturl";
curl -L "$objecturl" -o "$objectfile" || { echo "ERROR: $object failed to download"; continue; }
echo "NAME: $objectname, FILE: $object, URL: $objecturl;" >> "$updatelog";
objectcksum="$(cksum "$objectfile" | select_word 1)";
echo "NAME: $objectname, FILE: $object, URL: $objecturl, CKSUM: $objectcksum;" >> "$updatelog";
;;
esac;
mkdir -p "$resdldir/$(dirname "$object")";

Loading…
Cancel
Save