From 116636c9a36379a52e8fb4aeebc15171b5940e55 Mon Sep 17 00:00:00 2001 From: bryan Date: Fri, 29 Nov 2024 22:17:09 -0500 Subject: [PATCH] Archive existing image builds --- openwrtbuilder | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/openwrtbuilder b/openwrtbuilder index 57a517d..d2ed2fd 100755 --- a/openwrtbuilder +++ b/openwrtbuilder @@ -616,6 +616,22 @@ extract() { return 1 fi } +backup_image() { + debug "${FUNCNAME[0]} $*" + local file="$1" + local dir="$2" + local count=1 + [[ -f $file ]] || return + local creation_date + creation_date=$(stat -c %w "$file" 2>/dev/null || stat -c %y "$file" | cut -d' ' -f1) + execute mkdir -p "$dir" + local base_name + base_name=$(basename "$file") + while [[ -e "$dir/$creation_date-$base_name.bk.$count" ]]; do + ((count++)) + done + execute mv "$file" "$dir/$creation_date-$base_name.bk.$count" +} verify() { debug "${FUNCNAME[0]}" "$*" local file_to_check="$1" @@ -651,6 +667,7 @@ main() { # Fallback to SCRIPTDIR if BUILDROOT has not been set declare -g BUILDROOT="${BUILDROOT:=$SCRIPTDIR}" declare -g FILESDIR="${FILESDIR:=$BUILDROOT/src/files}" + declare -g BACKUPDIR="$SCRIPTDIR/backups" # This could be dangerous if [[ $BUILDROOT == "/" ]]; then @@ -729,6 +746,8 @@ main() { declare -g SYSUPGRADEIMGGZ="$BUILDDIR/$img_fname-sysupgrade.img.gz" fi + backup_image "$SYSUPGRADEIMGGZ" "$BACKUPDIR/$profile/$RELEASE" + if ((RESET)); then if ((FROM_SOURCE)); then [[ -d $GITWORKTREEDIR ]] && ask_ok "Remove $GITWORKTREEDIR?"