2
0
Эх сурвалжийг харах

Added option for NSIS

This change will 
1. download NSIS zip, 
2. unzip in temp folder, 
3. use nsis to build the installer
crankdoofus 6 жил өмнө
parent
commit
3b9766f58c

+ 22 - 0
deployment/windows/build-jellyfin.ps1

@@ -1,5 +1,6 @@
 [CmdletBinding()]
 [CmdletBinding()]
 param(
 param(
+    [switch]$MakeNSIS,
     [switch]$InstallFFMPEG,
     [switch]$InstallFFMPEG,
     [switch]$InstallNSSM,
     [switch]$InstallNSSM,
     [switch]$GenerateZip,
     [switch]$GenerateZip,
@@ -96,6 +97,23 @@ function Install-NSSM {
     Remove-Item "$tempdir/nssm.zip" -Force -ErrorAction Continue | Write-Verbose
     Remove-Item "$tempdir/nssm.zip" -Force -ErrorAction Continue | Write-Verbose
 }
 }
 
 
+function Make-NSIS {
+    param(
+        [string]$InstallLocation
+    )
+	Write-Verbose "Downloading NSIS"
+	[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
+	Invoke-WebRequest -Uri https://nchc.dl.sourceforge.net/project/nsis/NSIS%203/3.04/nsis-3.04.zip -UseBasicParsing -OutFile "$tempdir/nsis.zip" | Write-Verbose
+
+    Expand-Archive "$tempdir/nsis.zip" -DestinationPath "$tempdir/nsis/" | Write-Verbose
+	$env:InstallLocation = $InstallLocation
+	& "$tempdir/nsis/nsis-3.04/makensis.exe" ".\deployment\windows\jellyfin.nsi"
+	Copy-Item .\deployment\windows\Jellyfin.Installer.*.exe $InstallLocation\..\
+	
+    Remove-Item "$tempdir/nsis/" -Recurse -Force -ErrorAction Continue | Write-Verbose
+    Remove-Item "$tempdir/nsis.zip" -Force -ErrorAction Continue | Write-Verbose
+}
+
 Write-Verbose "Starting Build Process: Selected Environment is $WindowsVersion-$Architecture"
 Write-Verbose "Starting Build Process: Selected Environment is $WindowsVersion-$Architecture"
 Build-JellyFin
 Build-JellyFin
 if($InstallFFMPEG.IsPresent -or ($InstallFFMPEG -eq $true)){
 if($InstallFFMPEG.IsPresent -or ($InstallFFMPEG -eq $true)){
@@ -106,6 +124,10 @@ if($InstallNSSM.IsPresent -or ($InstallNSSM -eq $true)){
     Write-Verbose "Starting NSSM Install"
     Write-Verbose "Starting NSSM Install"
     Install-NSSM $InstallLocation $Architecture
     Install-NSSM $InstallLocation $Architecture
 }
 }
+if($MakeNSIS.IsPresent -or ($MakeNSIS -eq $true)){
+    Write-Verbose "Starting NSIS Package creation"
+    Make-NSIS $InstallLocation
+}
 Copy-Item .\deployment\windows\install-jellyfin.ps1 $InstallLocation\install-jellyfin.ps1
 Copy-Item .\deployment\windows\install-jellyfin.ps1 $InstallLocation\install-jellyfin.ps1
 Copy-Item .\deployment\windows\install.bat $InstallLocation\install.bat
 Copy-Item .\deployment\windows\install.bat $InstallLocation\install.bat
 if($GenerateZip.IsPresent -or ($GenerateZip -eq $true)){
 if($GenerateZip.IsPresent -or ($GenerateZip -eq $true)){