[WIP] Fix edge upgrade edge cases

This commit is contained in:
Vladimir Stoilov
2024-09-25 16:33:45 +03:00
parent 89b533f949
commit 1b6ee722f3
6 changed files with 124 additions and 29 deletions

View File

@@ -1,14 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="INSTALLDIR">
<Directory Id="BinaryDir" Name="binary" />
<Directory Id="IntelDir" Name="intel" />
<DirectoryRef Id="TARGETDIR">
<Directory Id="CommonAppDataFolder" Name="CommonAppData">
<Directory Id="PortmasterDir" Name="Portmaster">
<Directory Id="IntelDir" Name="intel" />
</Directory>
</Directory>
</DirectoryRef>
</Fragment>
<Fragment>
<Component Id="BinaryFiles" Directory="BinaryDir" Guid="850cdd31-424d-45f5-b8f0-95df950ebd0d">
<Component Id="BinaryFiles" Directory="INSTALLDIR" Guid="850cdd31-424d-45f5-b8f0-95df950ebd0d">
<File Id="BinIndexJson" Source="..\..\..\..\binaries\bin-index.json" />
<File Id="PortmasterCoreExe" Source="..\..\..\..\binaries\portmaster-core.exe" />
<File Id="PortmasterKextSys" Source="..\..\..\..\binaries\portmaster-kext.sys" />

View File

@@ -1,13 +1,34 @@
!define NSIS_HOOK_POSTINSTALL "NSIS_HOOK_POSTINSTALL_"
!macro NSIS_HOOK_PREINSTALL
; Current working directory is <project-dir>\target\release\nsis\x64
SetOutPath "$INSTDIR"
File "..\..\..\..\binaries\bin-index.json"
File "..\..\..\..\binaries\portmaster-core.exe"
File "..\..\..\..\binaries\portmaster-kext.sys"
File "..\..\..\..\binaries\portmaster.zip"
File "..\..\..\..\binaries\assets.zip"
SetOutPath "$COMMONPROGRAMDATA\Portmaster\intel"
File "..\..\..\..\binaries\intel-index.json"
File "..\..\..\..\binaries\base.dsdl"
File "..\..\..\..\binaries\geoipv4.mmdb"
File "..\..\..\..\binaries\geoipv6.mmdb"
File "..\..\..\..\binaries\index.dsd"
File "..\..\..\..\binaries\intermediate.dsdl"
File "..\..\..\..\binaries\urgent.dsdl"
; restire previous state
SetOutPath "$INSTDIR"
!macro NSIS_HOOK_POSTINSTALL_
ExecWait '"$INSTDIR\portmaster-start.exe" install core-service --data="$INSTDIR\data"'
!macroend
!macro NSIS_HOOK_POSTINSTALL
ExecWait 'sc.exe create PortmasterCore binPath= "$INSTDIR\portmaster-core.exe" --data="$COMMONPROGRAMDATA\Portmaster\data"'
!macroend
!define NSIS_HOOK_PREUNINSTALL "NSIS_HOOK_PREUNINSTALL_"
!macro NSIS_HOOK_PREUNINSTALL_
!macro NSIS_HOOK_PREUNINSTALL
ExecWait 'sc.exe stop PortmasterCore'
ExecWait 'sc.exe delete PortmasterCore'
!macroend

View File

@@ -3,7 +3,7 @@
<Fragment>
<CustomAction Id="InstallPortmasterService"
Directory="INSTALLDIR"
ExeCommand="sc.exe create PortmasterCore binPath= &quot;[INSTALLDIR]binary\portmaster-core.exe --data [INSTALLDIR]data&quot;"
ExeCommand="sc.exe create PortmasterCore binPath= &quot;[INSTALLDIR]portmaster-core.exe --data [CommonAppDataFolder]Portmaster\data&quot;"
Execute="commit"
Return="check"
Impersonate="no"