aboutsummaryrefslogtreecommitdiff
path: root/deployment/windows
diff options
context:
space:
mode:
authorAnthony Lavado <anthony@lavado.ca>2019-10-15 04:24:30 -0400
committerAnthony Lavado <anthony@lavado.ca>2019-10-15 04:24:30 -0400
commit9ad781324ebdfb9679a0dcf4258195a870c0826c (patch)
tree0ca926b5f28fb73575a289736984eecd67837092 /deployment/windows
parent05fb84ba2236b0fd0727caf29fad4986059c8b8e (diff)
Fix up Setup Type dialog, and add logic for basic setup
Fix up the Setup Type dialog, by removing an unused function from the page. Adds logic to the installer to check for a basic or advanced setup choice. Ensures that the service is only installed if the "advanced" method is chosen. Note - it may be possible to remove some defaults from the .onInit, considering they get set through the program now.
Diffstat (limited to 'deployment/windows')
-rw-r--r--deployment/windows/dialogs/setuptype.nsdinc6
-rw-r--r--deployment/windows/jellyfin.nsi34
2 files changed, 30 insertions, 10 deletions
diff --git a/deployment/windows/dialogs/setuptype.nsdinc b/deployment/windows/dialogs/setuptype.nsdinc
index 0b171da28..6c3011933 100644
--- a/deployment/windows/dialogs/setuptype.nsdinc
+++ b/deployment/windows/dialogs/setuptype.nsdinc
@@ -49,8 +49,4 @@ Function fnc_setuptype_Create
FunctionEnd
-; dialog show function
-Function fnc_setuptype_Show
- Call fnc_setuptype_Create
- nsDialogs::Show
-FunctionEnd
+
diff --git a/deployment/windows/jellyfin.nsi b/deployment/windows/jellyfin.nsi
index b8de4a440..375c3cd79 100644
--- a/deployment/windows/jellyfin.nsi
+++ b/deployment/windows/jellyfin.nsi
@@ -89,9 +89,10 @@ ShowUninstDetails show
!insertmacro MUI_PAGE_LICENSE "$%InstallLocation%\LICENSE" ; picking up generic GPL
; Setup Type Page
- Page custom ShowSetupTypePage ;SetupTypePage_Config
+ Page custom ShowSetupTypePage SetupTypePage_Config
; Components Page
+ !define MUI_PAGE_CUSTOMFUNCTION_PRE HideComponentsPage
!insertmacro MUI_PAGE_COMPONENTS
!define MUI_PAGE_CUSTOMFUNCTION_PRE HideInstallDirectoryPage ; Controls when to hide / show
!define MUI_DIRECTORYPAGE_TEXT_DESTINATION "Install folder" ; shows just above the folder selection dialog
@@ -185,8 +186,8 @@ Section "!Jellyfin Server (required)" InstallJellyfinServer
WriteUninstaller "$INSTDIR\Uninstall.exe"
SectionEnd
-Section /o "Jellyfin Server Service" InstallService
-
+Section "Jellyfin Server Service" InstallService
+${If} $_INSTALLSERVICE_ == "Yes" ; Only run this if we're going to install the service!
ExecWait '"$INSTDIR\nssm.exe" statuscode JellyfinServer' $0
DetailPrint "Jellyfin Server service statuscode, $0"
${If} $0 == 0
@@ -246,6 +247,7 @@ Section /o "Jellyfin Server Service" InstallService
${EndIf}
DetailPrint "Jellyfin Server service account change, $0"
${EndIf}
+${EndIf}
SectionEnd
@@ -327,7 +329,7 @@ SectionEnd
Function .onInit
; Setting up defaults
- StrCpy $_INSTALLSERVICE_ "No"
+ StrCpy $_INSTALLSERVICE_ "Yes"
StrCpy $_SERVICESTART_ "Yes"
StrCpy $_SERVICEACCOUNTTYPE_ "NetworkService"
StrCpy $_EXISTINGINSTALLATION_ "No"
@@ -420,7 +422,13 @@ Function HideConfirmationPage
FunctionEnd
Function HideSetupTypePage
- ${If} $_EXISTINGINSTALLATION_ == "Yes" ; Existing installation detected, so don't ask for InstallFolder
+ ${If} $_EXISTINGINSTALLATION_ == "Yes" ; Existing installation detected, so don't ask for SetupType
+ Abort
+ ${EndIf}
+FunctionEnd
+
+Function HideComponentsPage
+ ${If} $_SETUPTYPE_ == "Basic" ; Basic installation chosen, don't show components choice
Abort
${EndIf}
FunctionEnd
@@ -450,6 +458,22 @@ FunctionEnd
Var StartServiceAfterInstall
Var UseNetworkServiceAccount
Var UseLocalSystemAccount
+Var BasicInstall
+
+
+Function SetupTypePage_Config
+${NSD_GetState} $hCtl_setuptype_BasicInstall $BasicInstall
+${If} $BasicInstall == 1
+ StrCpy $_SETUPTYPE_ "Basic"
+ StrCpy $_INSTALLSERVICE_ "No"
+ StrCpy $_SERVICESTART_ "No"
+ StrCpy $_SERVICEACCOUNTTYPE_ "None"
+${Else}
+ StrCpy $_SETUPTYPE_ "Advanced"
+ StrCpy $_INSTALLSERVICE_ "Yes"
+${EndIf}
+
+FunctionEnd
Function ServiceConfigPage_Config
${NSD_GetState} $hCtl_service_config_StartServiceAfterInstall $StartServiceAfterInstall