diff options
author | kali kaneko (leap communications) <kali@leap.se> | 2020-04-22 23:52:35 +0200 |
---|---|---|
committer | kali kaneko (leap communications) <kali@leap.se> | 2020-04-30 22:10:28 +0200 |
commit | 89c0870865b75f70e896ff546b7e341ce622cf68 (patch) | |
tree | e19c4735a16be936dea0bac7cbb1ce7e89c4e6f5 /branding/templates/windows | |
parent | e05f5aa352f6ba55562a0afade0fa9046aeaf0d1 (diff) |
[pkg] uninstalling dance for old-style nssm installers
Diffstat (limited to 'branding/templates/windows')
-rwxr-xr-x | branding/templates/windows/template.nsi | 31 |
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\" |