Skip to content

Commit 1ceaa78

Browse files
Build Number in Version File
Added code to extract a "build number" (IF it exists) from the version file so we can compare different build numbers when the version strings are the same.
1 parent d674b2f commit 1ceaa78

File tree

3 files changed

+54
-16
lines changed

3 files changed

+54
-16
lines changed

MerlinAU.sh

Lines changed: 52 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#
55
# Original Creation Date: 2023-Oct-01 by @ExtremeFiretop.
66
# Official Co-Author: @Martinski W. - Date: 2023-Nov-01
7-
# Last Modified: 2025-Mar-20
7+
# Last Modified: 2025-Mar-24
88
###################################################################
99
set -u
1010

@@ -37,11 +37,13 @@ readonly CL_URL_3006="${FW_SFURL_BASE}/Documentation/Changelog-3006.txt/download
3737
readonly high_risk_terms="factory default reset|features are disabled|break backward compatibility|must be manually|strongly recommended"
3838

3939
##----------------------------------------##
40-
## Modified by Martinski W. [2024-Dec-31] ##
40+
## Modified by Martinski W. [2025-Mar-24] ##
4141
##----------------------------------------##
4242
# For new script version updates from source repository #
4343
DLRepoVersion=""
4444
DLRepoVersionNum=""
45+
DLRepoBuildNum=0
46+
ScriptBuildNum=0
4547
ScriptVersionNum=""
4648
scriptUpdateNotify=0
4749

@@ -2608,6 +2610,24 @@ _CheckForNewGUIVersionUpdate_()
26082610
return "$retCode"
26092611
}
26102612

2613+
##-------------------------------------##
2614+
## Added by Martinski W. [2025-Mar-24] ##
2615+
##-------------------------------------##
2616+
_GetDLScriptVersion_()
2617+
{
2618+
if [ $# -eq 0 ] || [ -z "$1" ] || [ ! -s "$1" ]
2619+
then echo ; return 1 ; fi
2620+
2621+
local DLversBuildNum=0
2622+
if [ "$(wc -l < "$1")" -eq 2 ]
2623+
then
2624+
DLversBuildNum="$(tail -n1 "$1")"
2625+
[ -z "$DLversBuildNum" ] && DLversBuildNum=0
2626+
fi
2627+
echo "$(head -n1 "$1")|$DLversBuildNum"
2628+
return 0
2629+
}
2630+
26112631
##----------------------------------------##
26122632
## Modified by Martinski W. [2025-Feb-15] ##
26132633
##----------------------------------------##
@@ -2692,7 +2712,7 @@ _DownloadScriptFiles_()
26922712
}
26932713

26942714
##----------------------------------------##
2695-
## Modified by Martinski W. [2025-Feb-15] ##
2715+
## Modified by Martinski W. [2025-Mar-24] ##
26962716
##----------------------------------------##
26972717
_SCRIPT_UPDATE_()
26982718
{
@@ -2701,10 +2721,7 @@ _SCRIPT_UPDATE_()
27012721
if [ $# -gt 0 ] && [ "$1" = "force" ]
27022722
then
27032723
printf "\n${CYANct}Force downloading latest script version...${NOct}\n"
2704-
if ! _CheckForNewScriptUpdates_ -quietcheck
2705-
then
2706-
DLRepoVersion="$(/usr/sbin/curl -LSs --retry 4 --retry-delay 5 "${SCRIPT_URL_REPO}/version.txt")"
2707-
fi
2724+
_CheckForNewScriptUpdates_ -quietcheck
27082725
if _CheckForNewGUIVersionUpdate_ "$SCRIPT_VERSION" "$DLRepoVersion"
27092726
then extraParam="install"
27102727
fi
@@ -2749,7 +2766,8 @@ _SCRIPT_UPDATE_()
27492766
if _DownloadScriptFiles_ update
27502767
then
27512768
if "$mountWebGUI_OK"
2752-
then _SetVersionSharedSettings_ local "$DLRepoVersion" ; fi
2769+
then _SetVersionSharedSettings_ local "$DLRepoVersion"
2770+
fi
27532771
printf "\n${CYANct}Download successful!${NOct}\n"
27542772
printf "$(date) - Successfully downloaded $SCRIPT_NAME v${DLRepoVersion}\n"
27552773
fi
@@ -2770,7 +2788,8 @@ _SCRIPT_UPDATE_()
27702788
if _DownloadScriptFiles_ update
27712789
then
27722790
if "$mountWebGUI_OK"
2773-
then _SetVersionSharedSettings_ local "$DLRepoVersion" ; fi
2791+
then _SetVersionSharedSettings_ local "$DLRepoVersion"
2792+
fi
27742793
printf "\n$(date) - Successfully downloaded $SCRIPT_NAME v${DLRepoVersion}\n"
27752794
printf "${CYANct}Update successful! Restarting script...${NOct}\n"
27762795
sleep 1
@@ -2791,23 +2810,37 @@ _SCRIPT_UPDATE_()
27912810
}
27922811

27932812
##----------------------------------------##
2794-
## Modified by Martinski W. [2025-Feb-15] ##
2813+
## Modified by Martinski W. [2025-Mar-24] ##
27952814
##----------------------------------------##
27962815
_CheckForNewScriptUpdates_()
27972816
{
2817+
local verStr DLScriptVerPath="${SCRIPT_VERPATH}.DL.tmp"
27982818
echo
27992819
DLRepoVersion="$SCRIPT_VERSION"
2800-
[ -s "$SCRIPT_VERPATH" ] && DLRepoVersion="$(cat "$SCRIPT_VERPATH")"
2801-
rm -f "$SCRIPT_VERPATH"
2820+
if [ -s "$SCRIPT_VERPATH" ]
2821+
then
2822+
if verStr="$(_GetDLScriptVersion_ "$SCRIPT_VERPATH")"
2823+
then
2824+
DLRepoVersion="$(echo "$verStr" | awk -F '|' '{print $1}')"
2825+
DLRepoBuildNum="$(echo "$verStr" | awk -F '|' '{print $2}')"
2826+
ScriptBuildNum="$DLRepoBuildNum"
2827+
fi
2828+
fi
28022829

2803-
if ! _CurlFileDownload_ "version.txt" "$SCRIPT_VERPATH"
2830+
if ! _CurlFileDownload_ "version.txt" "$DLScriptVerPath"
28042831
then
28052832
Say "${REDct}**ERROR**${NOct}: Unable to download latest version file for $SCRIPT_NAME."
28062833
scriptUpdateNotify=0
28072834
return 1
28082835
fi
28092836

2810-
DLRepoVersion="$(cat "$SCRIPT_VERPATH")"
2837+
if verStr="$(_GetDLScriptVersion_ "$DLScriptVerPath")"
2838+
then
2839+
DLRepoVersion="$(echo "$verStr" | awk -F '|' '{print $1}')"
2840+
DLRepoBuildNum="$(echo "$verStr" | awk -F '|' '{print $2}')"
2841+
fi
2842+
rm -f "$DLScriptVerPath"
2843+
28112844
if [ -z "$DLRepoVersion" ]
28122845
then
28132846
Say "${REDct}**ERROR**${NOct}: Variable for downloaded version is empty."
@@ -2818,7 +2851,11 @@ _CheckForNewScriptUpdates_()
28182851
DLRepoVersionNum="$(_ScriptVersionStrToNum_ "$DLRepoVersion")"
28192852
ScriptVersionNum="$(_ScriptVersionStrToNum_ "$SCRIPT_VERSION")"
28202853

2821-
if [ "$DLRepoVersionNum" -gt "$ScriptVersionNum" ]
2854+
if [ "$DLRepoVersionNum" -gt "$ScriptVersionNum" ] || \
2855+
{
2856+
[ "$DLRepoVersionNum" -eq "$ScriptVersionNum" ] && \
2857+
[ "$DLRepoBuildNum" -gt "$ScriptBuildNum" ]
2858+
}
28222859
then
28232860
scriptUpdateNotify="New script update available.
28242861
${REDct}v${SCRIPT_VERSION}${NOct} --> ${GRNct}v${DLRepoVersion}${NOct}"

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# MerlinAU - AsusWRT-Merlin Firmware Auto Updater
22
## v1.4.0
3-
## 2025-Mar-20
3+
## 2025-Mar-25
44

55
## WebUI:
66
![image](https://github.com/user-attachments/assets/10d0971c-b3c6-477a-8904-d4bf013f72df)

version.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
1.4.0
2+
25032500

0 commit comments

Comments
 (0)