From 15ee82ef535dcb3afa73a4948dc74ef5efc6cf27 Mon Sep 17 00:00:00 2001 From: Vantz Stockwell Date: Wed, 18 Mar 2026 02:01:42 -0400 Subject: [PATCH] =?UTF-8?q?fix:=20move=20NSIS=20script=20to=20template=20f?= =?UTF-8?q?ile=20=E2=80=94=20avoid=20YAML=20!include=20parse=20error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 (1M context) --- .gitea/workflows/build-release.yml | 56 +++++------------------------- src-tauri/installer.nsi.template | 31 +++++++++++++++++ 2 files changed, 40 insertions(+), 47 deletions(-) create mode 100644 src-tauri/installer.nsi.template diff --git a/.gitea/workflows/build-release.yml b/.gitea/workflows/build-release.yml index 942a4a1..0829478 100644 --- a/.gitea/workflows/build-release.yml +++ b/.gitea/workflows/build-release.yml @@ -65,57 +65,19 @@ jobs: $env:Path = "$env:EXTRA_PATH;$env:Path" $ver = ("${{ github.ref_name }}" -replace '^v','') $outExe = "Wraith_" + $ver + "_x64-setup.exe" - $workDir = (Get-Location).Path - New-Item -ItemType Directory -Force -Path "$workDir\dist-pkg" | Out-Null - Copy-Item "$workDir\src-tauri\target\release\Wraith.exe" "$workDir\dist-pkg\" - Copy-Item "$workDir\src-tauri\icons\icon.ico" "$workDir\dist-pkg\wraith.ico" -ErrorAction SilentlyContinue + New-Item -ItemType Directory -Force -Path dist-pkg | Out-Null + Copy-Item src-tauri\target\release\Wraith.exe dist-pkg\ + Copy-Item src-tauri\icons\icon.ico dist-pkg\wraith.ico -ErrorAction SilentlyContinue - $nsiContent = @' -!include "MUI2.nsh" -Name "Wraith" -OutFile "OUTFILE_PLACEHOLDER" -InstallDir "$PROGRAMFILES64\Wraith" -RequestExecutionLevel admin -!insertmacro MUI_PAGE_DIRECTORY -!insertmacro MUI_PAGE_INSTFILES -!insertmacro MUI_LANGUAGE "English" -Section "Install" - SetOutPath "$INSTDIR" - File "Wraith.exe" - File "wraith.ico" - CreateDirectory "$SMPROGRAMS\Wraith" - CreateShortcut "$SMPROGRAMS\Wraith\Wraith.lnk" "$INSTDIR\Wraith.exe" "" "$INSTDIR\wraith.ico" - CreateShortcut "$DESKTOP\Wraith.lnk" "$INSTDIR\Wraith.exe" "" "$INSTDIR\wraith.ico" - WriteUninstaller "$INSTDIR\uninstall.exe" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wraith" "DisplayName" "Wraith" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wraith" "UninstallString" "$INSTDIR\uninstall.exe" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wraith" "DisplayVersion" "VER_PLACEHOLDER" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wraith" "Publisher" "Vigilance Cyber" -SectionEnd -Section "Uninstall" - Delete "$INSTDIR\Wraith.exe" - Delete "$INSTDIR\wraith.ico" - Delete "$INSTDIR\uninstall.exe" - RMDir "$INSTDIR" - Delete "$SMPROGRAMS\Wraith\Wraith.lnk" - RMDir "$SMPROGRAMS\Wraith" - Delete "$DESKTOP\Wraith.lnk" - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wraith" -SectionEnd -'@ - $nsiContent = $nsiContent.Replace("OUTFILE_PLACEHOLDER", $outExe).Replace("VER_PLACEHOLDER", $ver) - [System.IO.File]::WriteAllText("$workDir\dist-pkg\installer.nsi", $nsiContent) + $nsi = Get-Content src-tauri\installer.nsi.template -Raw + $nsi = $nsi.Replace("OUTFILE_PLACEHOLDER", $outExe).Replace("VER_PLACEHOLDER", $ver) + [System.IO.File]::WriteAllText((Join-Path (Get-Location) "dist-pkg\installer.nsi"), $nsi) - Write-Host "=== NSIS script written ===" - Write-Host "Working dir: $workDir" - Write-Host "OutFile: $outExe" - Get-ChildItem "$workDir\dist-pkg\" - - & makensis "$workDir\dist-pkg\installer.nsi" - Move-Item "$workDir\dist-pkg\$outExe" "$workDir\" + & makensis (Join-Path (Get-Location) "dist-pkg\installer.nsi") + Move-Item "dist-pkg\$outExe" . Write-Host "=== Installer built ===" - Get-ChildItem "$workDir\$outExe" + Get-ChildItem $outExe - name: Download jsign shell: powershell diff --git a/src-tauri/installer.nsi.template b/src-tauri/installer.nsi.template new file mode 100644 index 0000000..d47a776 --- /dev/null +++ b/src-tauri/installer.nsi.template @@ -0,0 +1,31 @@ +!include "MUI2.nsh" +Name "Wraith" +OutFile "OUTFILE_PLACEHOLDER" +InstallDir "$PROGRAMFILES64\Wraith" +RequestExecutionLevel admin +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_LANGUAGE "English" +Section "Install" + SetOutPath "$INSTDIR" + File "Wraith.exe" + File "wraith.ico" + CreateDirectory "$SMPROGRAMS\Wraith" + CreateShortcut "$SMPROGRAMS\Wraith\Wraith.lnk" "$INSTDIR\Wraith.exe" "" "$INSTDIR\wraith.ico" + CreateShortcut "$DESKTOP\Wraith.lnk" "$INSTDIR\Wraith.exe" "" "$INSTDIR\wraith.ico" + WriteUninstaller "$INSTDIR\uninstall.exe" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wraith" "DisplayName" "Wraith" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wraith" "UninstallString" "$INSTDIR\uninstall.exe" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wraith" "DisplayVersion" "VER_PLACEHOLDER" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wraith" "Publisher" "Vigilance Cyber" +SectionEnd +Section "Uninstall" + Delete "$INSTDIR\Wraith.exe" + Delete "$INSTDIR\wraith.ico" + Delete "$INSTDIR\uninstall.exe" + RMDir "$INSTDIR" + Delete "$SMPROGRAMS\Wraith\Wraith.lnk" + RMDir "$SMPROGRAMS\Wraith" + Delete "$DESKTOP\Wraith.lnk" + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Wraith" +SectionEnd