From 4bc723dca49dce9e920095b144387bf116a759b0 Mon Sep 17 00:00:00 2001 From: ShaneTheAwesome Date: Thu, 19 Dec 2019 13:42:00 +0400 Subject: [PATCH] Add update delta checking --- conf/resdl-download.txt | 32 ++++++++++++++++++++++++++++++++ update.sh | 5 +++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/conf/resdl-download.txt b/conf/resdl-download.txt index 70180b4..3513c73 100644 --- a/conf/resdl-download.txt +++ b/conf/resdl-download.txt @@ -55,6 +55,7 @@ pre_update_actions() { post_update_actions() { unzipmaps; + updatedelta; return 0; } @@ -73,3 +74,34 @@ unzipmaps() { rm -rf "$resdldir/$mapsfile.zip"; } + +updatedelta() { + + echo " "; + echo " - Checking resdl delta between updates..."; + + newlog="" + oldlogs="" + for log in $(ls -t $reldir/update-*.log); do + [ "$newlog" ] && oldlogs="$oldlogs $(basename "$log")" || newlog="$(basename "$log")"; + done; + [ "$oldlogs" ] || { echo " -- No old logs to compare"; return 0; } + for entry in $(cat "$reldir/$newlog" | grep -Po "FILE: [^,]*" | cut -d" " -f2); do + line="$(grep "FILE: $entry," "$reldir/$newlog")"; + file="$entry"; + url="$(echo $line | grep -Po "URL: [^,]*" | cut -d" " -f2)"; + oldurl=""; + for log in $oldlogs; do + oldurl="$(grep "FILE: $file," "$reldir/$log" | grep -Po "URL: [^,]*" | cut -d" " -f2)"; + [ "$oldurl" ] && break; + done; + [ "$oldurl" ] || oldurl="None"; + /usr/bin/[ "$url" == "$oldurl" ] && continue; + echo " -- Updated file: $file" + echo " ++ Old URL: $oldurl" + echo " ++ New URL: $url" + echo " ++ Old name: $(basename $oldurl)" + echo " ++ New name: $(basename $url)" + done; + +} diff --git a/update.sh b/update.sh index 119620c..ce9b876 100755 --- a/update.sh +++ b/update.sh @@ -5,9 +5,10 @@ workdir="$(pwd)"; cd "$workdir"; confdir="$workdir/conf"; resdldir="$workdir/resdl"; +reldir="$workdir/releases"; tmpdir="$workdir/tmp"; updatetime="$(date -u +%Y%m%d%H%M%S)"; -updatelog="$workdir/releases/update-$updatetime.log"; +updatelog="$reldir/update-$updatetime.log"; echo " "; echo "-- Minimal MicroG Update Script --"; @@ -37,7 +38,7 @@ mkdir -p "$tmpdir" "$tmpdir/repos" "$(dirname "$updatelog")"; [ -f "$confdir/resdl-download.txt" ] || { echo " "; echo "F: No resdl-download.txt found"; return 1; } eval "$(cat "$confdir/resdl-download.txt")" || { echo "FATAL: resdl-download.txt cannot be executed"; return 1; }; -if [ $@ ]; then +if [ "$*" ]; then echo " "; echo " - Building update list..."; stuff_download_new="";