aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/package-win.yml56
-rw-r--r--.github/workflows/release.yml5
2 files changed, 56 insertions, 5 deletions
diff --git a/.github/workflows/package-win.yml b/.github/workflows/package-win.yml
index 060b654..68e8dc3 100644
--- a/.github/workflows/package-win.yml
+++ b/.github/workflows/package-win.yml
@@ -165,9 +165,57 @@ jobs:
Pop $R1
Exch $R0
FunctionEnd
-
+
+ ; --- Uninstall-Specific Functions ---
+ !macro un.StrRep ResultVar String SubString RepString
+ Push "${String}"
+ Push "${SubString}"
+ Push "${RepString}"
+ Call un.StrRep
+ Pop "${ResultVar}"
+ !macroend
+
+ Function un.StrRep
+ Exch $R2
+ Exch
+ Exch $R1
+ Exch
+ Exch $R0
+ Push $R3
+ Push $R4
+ Push $R5
+ Push $R6
+ Push $R7
+ StrCpy $R3 0
+ StrLen $R4 $R1
+ StrLen $R6 $R0
+ Start:
+ StrCpy $R5 $R0 $R4 $R3
+ StrCmp $R5 $R1 Found
+ IntOp $R3 $R3 + 1
+ IntCmp $R3 $R6 End End Start
+ Found:
+ StrCpy $R5 $R0 $R3
+ IntOp $R7 $R3 + $R4
+ StrCpy $R7 $R0 "" $R7
+ StrCpy $R0 "$R5$R2$R7"
+ StrLen $R6 $R0
+ IntOp $R3 $R3 + $R4
+ Goto Start
+ End:
+ Pop $R7
+ Pop $R6
+ Pop $R5
+ Pop $R4
+ Pop $R3
+ Pop $R2
+ Pop $R1
+ Exch $R0
+ FunctionEnd
+
!define StrContains `!insertmacro StrContains`
!define StrRep `!insertmacro StrRep`
+ !define un.StrRep `!insertmacro un.StrRep`
; --- Main Script ---
Name "Mikusays"
@@ -224,9 +272,9 @@ jobs:
; Remove from PATH (Simple String Replacement)
ReadRegStr $0 HKCU "Environment" "Path"
- ${StrRep} $0 "$0" ";$INSTDIR" ""
- ${StrRep} $0 "$0" "$INSTDIR;" ""
- ${StrRep} $0 "$0" "$INSTDIR" ""
+ ${un.StrRep} $0 "$0" ";$INSTDIR" ""
+ ${un.StrRep} $0 "$0" "$INSTDIR;" ""
+ ${un.StrRep} $0 "$0" "$INSTDIR" ""
WriteRegExpandStr HKCU "Environment" "Path" "$0"
SendMessage ${HWND_BROADCAST} ${WM_SETTINGCHANGE} 0 "STR:Environment" /TIMEOUT=5000
SectionEnd
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 432a5a5..dfc3e88 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -154,7 +154,10 @@ jobs:
### Windows
- **x64**: `mikusays-windows-x86_64.exe`
- **ARM64**: `mikusays-windows-aarch64.exe`
-
+
+ ### Windows Installer
+ - **Any**: `mikusays-windows-inst-any.exe`
+
### Linux (binary)
- **x64**: `mikusays-linux-x64`
- **ARM64**: `mikusays-linux-arm64`