summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkali kaneko (leap communications) <kali@leap.se>2020-04-22 23:52:35 +0200
committerkali kaneko (leap communications) <kali@leap.se>2020-04-30 22:10:28 +0200
commit89c0870865b75f70e896ff546b7e341ce622cf68 (patch)
treee19c4735a16be936dea0bac7cbb1ce7e89c4e6f5
parente05f5aa352f6ba55562a0afade0fa9046aeaf0d1 (diff)
[pkg] uninstalling dance for old-style nssm installers
-rwxr-xr-xbranding/templates/windows/template.nsi31
1 files changed, 25 insertions, 6 deletions
diff --git a/branding/templates/windows/template.nsi b/branding/templates/windows/template.nsi
index f9f8ea1..ce7b90b 100755
--- a/branding/templates/windows/template.nsi
+++ b/branding/templates/windows/template.nsi
@@ -46,23 +46,31 @@ RequestExecutionLevel admin
Section "InstallFiles"
- ; first we try to delete the helper, in case it is still the nssm-style
+ ; first we try to delete the helper (it can be the old one or a previous version of the new one)
+ DetailPrint "Trying to uninstall any older helper..."
ClearErrors
Delete 'C:\Program Files\$applicationName\bitmask_helper.exe'
IfErrors 0 noErrorHelper
- ; this could fail: uninstalling old nssm helper
+ ; uninstalling old nssm helper - could file if it isn't there, or if nssm is not there...
+ DetailPrint "Trying to uninstall an old style helper..."
ExecShellWait "runas" '"$INSTDIR\nssm.exe" stop $applicationNameLower-helper'
ExecShellWait "runas" '"$INSTDIR\nssm.exe" remove $applicationNameLower-helper confirm'
IfErrors 0 noErrorHelper
- ; Error handling
+ ; let's try to stop it in case it's the new style helper
+ DetailPrint "Trying to uninstall a new style helper..."
+ ExecWait '"$INSTDIR\bitmask_helper.exe" stop'
+ IfErrors 0 noErrorHelper
+
+ ; Error handling - ok, we give up
MessageBox MB_OK|MB_ICONEXCLAMATION "$applicationNameLower-helper cannot be deleted. Please try to remove it manually, and then run this installer again."
Abort
noErrorHelper:
- ; now we try to delete the systray, locked by the app.
+ ; now we try to delete the systray, locked by the app - just to know if another instance of FoobarVPN is running.
+ DetailPrint "Checking for a running systray..."
ClearErrors
Delete 'C:\Program Files\$applicationName\bitmask-vpn.exe'
IfErrors 0 noError
@@ -99,11 +107,21 @@ Section "InstallFiles"
SectionEnd
Section "InstallService"
+ DetailPrint "Trying to uninstall previous versions of the (new) helper..."
+ ClearErrors
+ ExecWait '"$INSTDIR\bitmask_helper.exe" stop'
+ ExecWait '"$INSTDIR\bitmask_helper.exe" remove'
+ IfErrors 0 noError
+ DetailPrint "Could not uninstall a previous version of the (new) helper!"
+
+ noError:
ExecWait '"$INSTDIR\bitmask_helper.exe" install'
ExecWait '"$INSTDIR\bitmask_helper.exe" start'
SectionEnd
Section /o "TAP Virtual Ethernet Adapter" SecTAP
+ ; TODO bringing the TAP adapter with us might be causing trouble with the fucking A/V mafia.
+ ; we might want to reconsider, and possibly downloading it from official sources...
; Adapted from the windows nsis installer from OpenVPN (openvpn-build repo).
DetailPrint "Installing TAP (may need confirmation)..."
; The /S flag make it "silent", remove it if you want it explicit
@@ -114,13 +132,14 @@ Section /o "TAP Virtual Ethernet Adapter" SecTAP
SectionEnd
Section "Uninstall"
-
; we uninstall the new-style go helper
ExecShellWait "runas" '"$INSTDIR\bitmask_helper.exe" remove'
-
+ ; now we (try to) remove everything else. kill it with fire!
Delete $INSTDIR\readme.txt
Delete $INSTDIR\helper.log
+ Delete $INSTDIR\port
+ Delete $INSTDIR\nssm.exe
Delete "$SMPROGRAMS\$applicationName\$applicationName.lnk"
RMDir "$SMPROGRAMS\$applicationName\"