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 }} diff --git a/MerlinAU.sh b/MerlinAU.sh index c6467de7..ccf2c5f6 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_() { @@ -2853,10 +2853,20 @@ _SCRIPT_UPDATE_() _SetVersionSharedSettings_ local "$DLRepoVersion" _SetVersionSharedSettings_ server "$DLRepoVersion" fi + if ! "$isInteractive" + then + _SendEMailNotification_ SUCCESS_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 +2909,7 @@ _SCRIPT_UPDATE_() else printf "\n\n${GRNct}Exiting Script Update Utility...${NOct}\n" sleep 1 - return + return 0 fi elif [ "$scriptUpdateNotify" != "0" ] then @@ -2926,19 +2936,19 @@ _SCRIPT_UPDATE_() exit 0 else _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" @@ -2986,7 +2996,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 @@ -3022,9 +3031,9 @@ _GetLatestFWUpdateVersionFromRouter_() echo "$newVersionStr" ; return "$retCode" } -##------------------------------------------## -## Modified by ExtremeFiretop [2024-Dec-28] ## -##------------------------------------------## +##----------------------------------------## +## Modified by Martinski W. [2024-Apr-14] ## +##----------------------------------------## _CreateEMailContent_() { if [ $# -eq 0 ] || [ -z "$1" ] ; then return 1 ; fi @@ -3034,10 +3043,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 @@ -3097,6 +3111,27 @@ _CreateEMailContent_() printf "\nThe F/W version that is currently installed:\n${fwInstalledVersion}\n" } > "$tempEMailBodyMsg" ;; + SUCCESS_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" + ;; STOP_FW_UPDATE_APPROVAL) emailBodyTitle="WARNING" if "$isEMailFormatHTML" diff --git a/README.md b/README.md index 36be3ec4..e3b94e30 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-26 ## WebUI: ![image](https://github.com/user-attachments/assets/a2197262-ca35-451a-8645-311896e1495e) 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