From 99c1ee4ad3966e4062255771b6cf41d5c4da3975 Mon Sep 17 00:00:00 2001 From: Joel Samson Date: Mon, 14 Apr 2025 22:20:20 -0400 Subject: [PATCH 01/10] Script Update Email Notifications Script Update Email Notifications --- MerlinAU.sh | 75 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 62 insertions(+), 13 deletions(-) diff --git a/MerlinAU.sh b/MerlinAU.sh index c6467de7..4b652236 100644 --- a/MerlinAU.sh +++ b/MerlinAU.sh @@ -4,15 +4,15 @@ # # Original Creation Date: 2023-Oct-01 by @ExtremeFiretop. # Official Co-Author: @Martinski W. - Date: 2023-Nov-01 -# Last Modified: 2025-Apr-12 +# Last Modified: 2025-Apr-14 ################################################################### set -u ## Set version for each Production Release ## -readonly SCRIPT_VERSION=1.4.2 +readonly SCRIPT_VERSION=1.4.3 readonly SCRIPT_NAME="MerlinAU" ## Set to "master" for Production Releases ## -SCRIPT_BRANCH="master" +SCRIPT_BRANCH="dev" ##----------------------------------------## ## Modified by Martinski W. [2024-Jul-03] ## @@ -2830,7 +2830,7 @@ _DownloadScriptFiles_() } ##------------------------------------------## -## Modified by ExtremeFiretop [2025-Apr-08] ## +## Modified by ExtremeFiretop [2025-Apr-14] ## ##------------------------------------------## _SCRIPT_UPDATE_() { @@ -2839,7 +2839,10 @@ _SCRIPT_UPDATE_() if [ $# -gt 0 ] && [ "$1" = "force" ] then printf "\n${CYANct}Force downloading latest script version...${NOct}\n" - _CheckForNewScriptUpdates_ -quietcheck + _CheckForNewScriptUpdates_ -quietcheck "$@" + if [ "$scriptUpdateNotify" != "0" ] && ! $isInteractive; then + _SendEMailNotification_ SCRIPT_UPDATE_FOUND + fi if _CheckForNewGUIVersionUpdate_ "$SCRIPT_VERSION" "$DLRepoVersion" then extraParam="install" fi @@ -2853,10 +2856,20 @@ _SCRIPT_UPDATE_() _SetVersionSharedSettings_ local "$DLRepoVersion" _SetVersionSharedSettings_ server "$DLRepoVersion" fi + if ! "$isInteractive" + then + _SendEMailNotification_ SUCESS_SCRIPT_UPDATE_STATUS + fi sleep 1 _ReleaseLock_ exec "$ScriptFilePath" $extraParam exit 0 + else + if ! "$isInteractive" + then + _SendEMailNotification_ FAILED_SCRIPT_UPDATE_STATUS + fi + return 1 fi return 0 fi @@ -2899,7 +2912,7 @@ _SCRIPT_UPDATE_() else printf "\n\n${GRNct}Exiting Script Update Utility...${NOct}\n" sleep 1 - return + return 0 fi elif [ "$scriptUpdateNotify" != "0" ] then @@ -2918,6 +2931,10 @@ _SCRIPT_UPDATE_() fi printf "\n${CYANct}Download successful!${NOct}\n" printf "\n$(date) - Successfully updated $SCRIPT_NAME v${DLRepoVersion}\n" + if ! "$isInteractive" + then + _SendEMailNotification_ SUCESS_SCRIPT_UPDATE_STATUS + fi printf "${CYANct}Restarting script...${NOct}\n" sleep 1 _CheckForNewGUIVersionUpdate_ && extraParam="install" @@ -2925,20 +2942,24 @@ _SCRIPT_UPDATE_() exec "$ScriptFilePath" $extraParam exit 0 else + if ! "$isInteractive" + then + _SendEMailNotification_ FAILED_SCRIPT_UPDATE_STATUS + fi _WaitForEnterKey_ - return + return 1 fi else printf "\n\n${GRNct}Exiting Script Update Utility...${NOct}\n" sleep 1 - return + return 0 fi fi } -##----------------------------------------## -## Modified by Martinski W. [2025-Mar-24] ## -##----------------------------------------## +##------------------------------------------## +## Modified by ExtremeFiretop [2025-Apr-14] ## +##------------------------------------------## _CheckForNewScriptUpdates_() { local verStr DLScriptVerPath="${SCRIPT_VERPATH}.DL.tmp" @@ -2960,6 +2981,7 @@ _CheckForNewScriptUpdates_() scriptUpdateNotify=0 return 1 fi + sleep 30 if verStr="$(_GetDLScriptVersion_ "$DLScriptVerPath")" then @@ -2986,7 +3008,6 @@ _CheckForNewScriptUpdates_() then scriptUpdateNotify="New script update available. ${REDct}v${SCRIPT_VERSION}${NOct} --> ${GRNct}v${DLRepoVersion}${NOct}" - if [ $# -gt 0 ] && [ "$1" = "-quietcheck" ] then return 0 fi @@ -3023,7 +3044,7 @@ _GetLatestFWUpdateVersionFromRouter_() } ##------------------------------------------## -## Modified by ExtremeFiretop [2024-Dec-28] ## +## Modified by ExtremeFiretop [2024-Apr-14] ## ##------------------------------------------## _CreateEMailContent_() { @@ -3097,6 +3118,34 @@ _CreateEMailContent_() printf "\nThe F/W version that is currently installed:\n${fwInstalledVersion}\n" } > "$tempEMailBodyMsg" ;; + SUCESS_SCRIPT_UPDATE_STATUS) + if [ -s "$SCRIPT_VERPATH" ] + then + if verStr="$(_GetDLScriptVersion_ "$SCRIPT_VERPATH")" + then + NEW_SCRIPT_VERSION="$(echo "$verStr" | awk -F '|' '{print $1}')" + fi + fi + emailBodyTitle="MerlinAU Script Update Installed" + { + echo "The new MerlinAU Script Update version ${DLRepoVersion} has been successfully installed on your ${MODEL_ID} router." + printf "\nThe currently installed script version is: ${NEW_SCRIPT_VERSION}\n" + } > "$tempEMailBodyMsg" + ;; + FAILED_SCRIPT_UPDATE_STATUS) + emailBodyTitle="MerlinAU Script Update Failed" + { + echo "Failed to install the new MerlinAU Script Update version ${DLRepoVersion} on your ${MODEL_ID} router." + printf "\nThe installed script version remains: ${SCRIPT_VERSION}\n" + } > "$tempEMailBodyMsg" + ;; + SCRIPT_UPDATE_FOUND) + emailBodyTitle="New MerlinAU Script Update Available" + { + echo "A new MerlinAU Script Update version ${DLRepoVersion} is now available for your ${MODEL_ID} router." + printf "\nThe currently installed script version is: ${SCRIPT_VERSION}\n" + } > "$tempEMailBodyMsg" + ;; STOP_FW_UPDATE_APPROVAL) emailBodyTitle="WARNING" if "$isEMailFormatHTML" From 345967945a2cce48b4b8cf325cdb39c2003904c2 Mon Sep 17 00:00:00 2001 From: Joel Samson Date: Mon, 14 Apr 2025 22:21:06 -0400 Subject: [PATCH 02/10] Update MerlinAU.sh --- MerlinAU.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/MerlinAU.sh b/MerlinAU.sh index 4b652236..b56daa92 100644 --- a/MerlinAU.sh +++ b/MerlinAU.sh @@ -2981,7 +2981,6 @@ _CheckForNewScriptUpdates_() scriptUpdateNotify=0 return 1 fi - sleep 30 if verStr="$(_GetDLScriptVersion_ "$DLScriptVerPath")" then From f8644950fa49cc392cfd6c44ddd24fca510b25ce Mon Sep 17 00:00:00 2001 From: Joel Samson Date: Mon, 14 Apr 2025 22:22:01 -0400 Subject: [PATCH 03/10] Update MerlinAU.sh --- MerlinAU.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MerlinAU.sh b/MerlinAU.sh index b56daa92..0a5b5b93 100644 --- a/MerlinAU.sh +++ b/MerlinAU.sh @@ -2839,7 +2839,7 @@ _SCRIPT_UPDATE_() if [ $# -gt 0 ] && [ "$1" = "force" ] then printf "\n${CYANct}Force downloading latest script version...${NOct}\n" - _CheckForNewScriptUpdates_ -quietcheck "$@" + _CheckForNewScriptUpdates_ -quietcheck if [ "$scriptUpdateNotify" != "0" ] && ! $isInteractive; then _SendEMailNotification_ SCRIPT_UPDATE_FOUND fi From c3a46c2fe5c5c05f43f0eafc1aa12409e142aaaf Mon Sep 17 00:00:00 2001 From: Joel Samson Date: Mon, 14 Apr 2025 22:23:33 -0400 Subject: [PATCH 04/10] Update MerlinAU.sh --- MerlinAU.sh | 8 -------- 1 file changed, 8 deletions(-) diff --git a/MerlinAU.sh b/MerlinAU.sh index 0a5b5b93..04ac9383 100644 --- a/MerlinAU.sh +++ b/MerlinAU.sh @@ -2931,10 +2931,6 @@ _SCRIPT_UPDATE_() fi printf "\n${CYANct}Download successful!${NOct}\n" printf "\n$(date) - Successfully updated $SCRIPT_NAME v${DLRepoVersion}\n" - if ! "$isInteractive" - then - _SendEMailNotification_ SUCESS_SCRIPT_UPDATE_STATUS - fi printf "${CYANct}Restarting script...${NOct}\n" sleep 1 _CheckForNewGUIVersionUpdate_ && extraParam="install" @@ -2942,10 +2938,6 @@ _SCRIPT_UPDATE_() exec "$ScriptFilePath" $extraParam exit 0 else - if ! "$isInteractive" - then - _SendEMailNotification_ FAILED_SCRIPT_UPDATE_STATUS - fi _WaitForEnterKey_ return 1 fi From e0fa5ba2534589f3ffc9733f0f4401634ef62f84 Mon Sep 17 00:00:00 2001 From: Joel Samson Date: Tue, 15 Apr 2025 00:34:05 -0400 Subject: [PATCH 05/10] Update version.txt --- version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.txt b/version.txt index 9df886c4..428b770e 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.4.2 +1.4.3 From 006f1b216186da9af747fdcbffec17efb885dd45 Mon Sep 17 00:00:00 2001 From: Joel Samson Date: Tue, 15 Apr 2025 00:55:00 -0400 Subject: [PATCH 06/10] Update MerlinAU.sh --- MerlinAU.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/MerlinAU.sh b/MerlinAU.sh index 04ac9383..9ef1de07 100644 --- a/MerlinAU.sh +++ b/MerlinAU.sh @@ -2841,7 +2841,7 @@ _SCRIPT_UPDATE_() printf "\n${CYANct}Force downloading latest script version...${NOct}\n" _CheckForNewScriptUpdates_ -quietcheck if [ "$scriptUpdateNotify" != "0" ] && ! $isInteractive; then - _SendEMailNotification_ SCRIPT_UPDATE_FOUND + _SendEMailNotification_ NEW_SCRIPT_UPDATE_FOUND fi if _CheckForNewGUIVersionUpdate_ "$SCRIPT_VERSION" "$DLRepoVersion" then extraParam="install" @@ -2858,7 +2858,7 @@ _SCRIPT_UPDATE_() fi if ! "$isInteractive" then - _SendEMailNotification_ SUCESS_SCRIPT_UPDATE_STATUS + _SendEMailNotification_ SUCCESS_SCRIPT_UPDATE_STATUS fi sleep 1 _ReleaseLock_ @@ -3109,7 +3109,7 @@ _CreateEMailContent_() printf "\nThe F/W version that is currently installed:\n${fwInstalledVersion}\n" } > "$tempEMailBodyMsg" ;; - SUCESS_SCRIPT_UPDATE_STATUS) + SUCCESS_SCRIPT_UPDATE_STATUS) if [ -s "$SCRIPT_VERPATH" ] then if verStr="$(_GetDLScriptVersion_ "$SCRIPT_VERPATH")" @@ -3130,7 +3130,7 @@ _CreateEMailContent_() printf "\nThe installed script version remains: ${SCRIPT_VERSION}\n" } > "$tempEMailBodyMsg" ;; - SCRIPT_UPDATE_FOUND) + NEW_SCRIPT_UPDATE_FOUND) emailBodyTitle="New MerlinAU Script Update Available" { echo "A new MerlinAU Script Update version ${DLRepoVersion} is now available for your ${MODEL_ID} router." From 16e704da43cc4ca6bf5f97de959a4b4bdbdb76a0 Mon Sep 17 00:00:00 2001 From: Martinski <119833648+Martinski4GitHub@users.noreply.github.com> Date: Mon, 14 Apr 2025 23:33:39 -0700 Subject: [PATCH 07/10] Improved Subject Line for Script Update Emails Modified code to set a more appropriate Subject line for the "Script Update Status" email notifications. --- MerlinAU.sh | 15 ++++++++++----- README.md | 4 ++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/MerlinAU.sh b/MerlinAU.sh index 9ef1de07..93bd7ffe 100644 --- a/MerlinAU.sh +++ b/MerlinAU.sh @@ -3034,9 +3034,9 @@ _GetLatestFWUpdateVersionFromRouter_() echo "$newVersionStr" ; return "$retCode" } -##------------------------------------------## -## Modified by ExtremeFiretop [2024-Apr-14] ## -##------------------------------------------## +##----------------------------------------## +## Modified by Martinski W. [2024-Apr-14] ## +##----------------------------------------## _CreateEMailContent_() { if [ $# -eq 0 ] || [ -z "$1" ] ; then return 1 ; fi @@ -3046,10 +3046,15 @@ _CreateEMailContent_() rm -f "$tempEMailContent" "$tempEMailBodyMsg" + local subjectStrTag="F/W Update Status" + if echo "$1" | grep -q '._SCRIPT_UPDATE_.' + then subjectStrTag="Script Update Status" + fi if [ -s "$tempNodeEMailList" ] - then subjectStr="F/W Update Status for $node_lan_hostname" - else subjectStr="F/W Update Status for $MODEL_ID" + then subjectStr="$subjectStrTag for $node_lan_hostname" + else subjectStr="$subjectStrTag for $MODEL_ID" fi + fwInstalledVersion="$(_GetCurrentFWInstalledLongVersion_)" if ! "$offlineUpdateTrigger" then diff --git a/README.md b/README.md index 36be3ec4..49c92abd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # MerlinAU - AsusWRT-Merlin Firmware Auto Updater -## v1.4.2 -## 2025-Apr-13 +## v1.4.3 +## 2025-Apr-14 ## WebUI: ![image](https://github.com/user-attachments/assets/a2197262-ca35-451a-8645-311896e1495e) From bffadeff9f984ca0ba4b38a163a900fbf9158a93 Mon Sep 17 00:00:00 2001 From: Joel Samson Date: Tue, 15 Apr 2025 21:21:22 -0400 Subject: [PATCH 08/10] Patch PR 458 Patch PR 458 --- MerlinAU.sh | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/MerlinAU.sh b/MerlinAU.sh index 93bd7ffe..ccf2c5f6 100644 --- a/MerlinAU.sh +++ b/MerlinAU.sh @@ -2840,9 +2840,6 @@ _SCRIPT_UPDATE_() then printf "\n${CYANct}Force downloading latest script version...${NOct}\n" _CheckForNewScriptUpdates_ -quietcheck - if [ "$scriptUpdateNotify" != "0" ] && ! $isInteractive; then - _SendEMailNotification_ NEW_SCRIPT_UPDATE_FOUND - fi if _CheckForNewGUIVersionUpdate_ "$SCRIPT_VERSION" "$DLRepoVersion" then extraParam="install" fi @@ -3135,13 +3132,6 @@ _CreateEMailContent_() printf "\nThe installed script version remains: ${SCRIPT_VERSION}\n" } > "$tempEMailBodyMsg" ;; - NEW_SCRIPT_UPDATE_FOUND) - emailBodyTitle="New MerlinAU Script Update Available" - { - echo "A new MerlinAU Script Update version ${DLRepoVersion} is now available for your ${MODEL_ID} router." - printf "\nThe currently installed script version is: ${SCRIPT_VERSION}\n" - } > "$tempEMailBodyMsg" - ;; STOP_FW_UPDATE_APPROVAL) emailBodyTitle="WARNING" if "$isEMailFormatHTML" From 17c9113c61830418812a7c13bee5fb9eb7deca06 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Apr 2025 23:57:11 +0000 Subject: [PATCH 09/10] Bump softprops/action-gh-release in the all-actions group Bumps the all-actions group with 1 update: [softprops/action-gh-release](https://github.com/softprops/action-gh-release). Updates `softprops/action-gh-release` from 2.2.1 to 2.2.2 - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](https://github.com/softprops/action-gh-release/compare/v2.2.1...v2.2.2) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-version: 2.2.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-actions ... Signed-off-by: dependabot[bot] --- .github/workflows/Create-NewReleases.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Create-NewReleases.yml b/.github/workflows/Create-NewReleases.yml index d99bdba2..cd530c26 100644 --- a/.github/workflows/Create-NewReleases.yml +++ b/.github/workflows/Create-NewReleases.yml @@ -85,7 +85,7 @@ jobs: git push origin ${{ steps.nextver.outputs.tag }} - name: Create Release with Automated Release Notes - uses: softprops/action-gh-release@v2.2.1 + uses: softprops/action-gh-release@v2.2.2 with: token: ${{ secrets.GITHUB_TOKEN }} tag_name: ${{ steps.nextver.outputs.tag }} From 9f70d7c376ba297f4442489c89c0bea4c3fb8f8d Mon Sep 17 00:00:00 2001 From: Joel Samson Date: Fri, 25 Apr 2025 19:07:08 -0400 Subject: [PATCH 10/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 49c92abd..e3b94e30 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # MerlinAU - AsusWRT-Merlin Firmware Auto Updater ## v1.4.3 -## 2025-Apr-14 +## 2025-Apr-26 ## WebUI: ![image](https://github.com/user-attachments/assets/a2197262-ca35-451a-8645-311896e1495e)