11; Fork of app-builder-lib/templates/nsis/installSection.nsh (electron-builder).
2- ; Only change: show installation details (SetDetailsPrint both) instead of none, plus
3- ; versioned install layout under $INSTDIR\versions\<VERSION> and current junction .
2+ ; Debug: if the Installing list stays empty, open %TEMP%\HyperlinksSpaceUpdater.log — HspInstallDetailPrint
3+ ; mirrors each milestone there (proves NSIS ran the line even when the UI list does not repaint) .
44;
55; Source lives here (not app/build/). package.json sets directories.buildResources to
66; "windows" so NSIS resolves this file before templates/nsis/installSection.nsh.
@@ -13,11 +13,8 @@ InitPluginsDir
1313
1414; Do not wrap DetailPrint in ${IfNot} ${Silent}: on some builds ${Silent} evaluates in a way that
1515; skips all section DetailPrint lines while the InstFiles SHOW hook still runs (only one line visible).
16- ; listonly: send DetailPrint into the white list (MUI2 often leaves the list empty with "both" alone).
17- SetDetailsPrint listonly
18- SetDetailsView show
1916; 7-Zip extraction does not stream filenames into the NSIS list (unlike File commands).
20- DetailPrint " Step 1/10 - Preparing ${PRODUCT_NAME} ${VERSION}..."
17+ !insertmacro HspInstallDetailPrint " Step 1/10 - Preparing ${PRODUCT_NAME} ${VERSION}..."
2118
2219; Installed layout: $INSTDIR\versions\<VERSION>\* and $INSTDIR\current → junction to that folder.
2320; For upgrade checks, prefer an existing versioned or legacy flat exe.
@@ -32,7 +29,7 @@ ${EndIf}
3229# must be called before uninstallOldVersion
3330!insertmacro setLinkVars
3431
35- DetailPrint " Step 2/10 - Checking that ${PRODUCT_NAME} is not running..."
32+ !insertmacro HspInstallDetailPrint " Step 2/10 - Checking that ${PRODUCT_NAME} is not running..."
3633
3734!ifdef ONE_CLICK
3835 !ifdef HEADER_ICO
@@ -72,7 +69,7 @@ ${if} $isTryToKeepShortcuts == "true"
7269 ${endIf}
7370${EndIf}
7471
75- DetailPrint " Step 3/10 - Checking for a previous installation and uninstalling the old build if needed..."
72+ !insertmacro HspInstallDetailPrint " Step 3/10 - Checking for a previous installation and uninstalling the old build if needed..."
7673!insertmacro uninstallOldVersion SHELL_CONTEXT
7774!insertmacro handleUninstallResult SHELL_CONTEXT
7875
@@ -81,35 +78,32 @@ ${if} $installMode == "all"
8178 !insertmacro handleUninstallResult HKEY_CURRENT_USER
8279${endIf}
8380
84- DetailPrint " Step 4/10 - Creating versioned install folder versions\${VERSION}..."
81+ !insertmacro HspInstallDetailPrint " Step 4/10 - Creating versioned install folder versions\${VERSION}..."
8582CreateDirectory " $INSTDIR\versions"
8683SetOutPath " $INSTDIR\versions\${VERSION}"
8784
8885!ifdef UNINSTALLER_ICON
8986 File /oname= uninstallerIcon.ico " ${UNINSTALLER_ICON}"
9087!endif
9188
92- DetailPrint " Step 5/10 - Extracting application package with 7-Zip (longest step; file names are not listed)..."
93- ; File extraction toggles status_update around compressed reads; keep listbox as the log target.
94- SetDetailsPrint listonly
95- SetDetailsView show
89+ !insertmacro HspInstallDetailPrint " Step 5/10 - Extracting application package with 7-Zip (longest step; file names are not listed)..."
9690!insertmacro installApplicationFiles
97- DetailPrint " Step 6/10 - Extraction finished."
98- DetailPrint " Step 7/10 - Pointing 'current' at versions\${VERSION} (directory junction)..."
91+ !insertmacro HspInstallDetailPrint " Step 6/10 - Extraction finished."
92+ !insertmacro HspInstallDetailPrint " Step 7/10 - Pointing 'current' at versions\${VERSION} (directory junction)..."
9993; Directory junction so shortcuts and the updater always use …\current\<exe>
10094IfFileExists " $INSTDIR\current" hspRemoveOldCurrent hspMklinkCurrent
10195hspRemoveOldCurrent:
102- DetailPrint " (removing existing junction or folder: $INSTDIR\current)"
96+ !insertmacro HspInstallDetailPrint " (removing existing junction or folder: ${ INSTDIR} \current)"
10397 nsExec::ExecToLog ' "$SYSDIR\cmd.exe" /c rmdir "$INSTDIR\current"'
10498 Pop $R9
10599hspMklinkCurrent:
106- DetailPrint " (creating junction: current -> versions\${VERSION})"
100+ !insertmacro HspInstallDetailPrint " (creating junction: current -> versions\${VERSION})"
107101nsExec::ExecToLog ' "$SYSDIR\cmd.exe" /c mklink /J "$INSTDIR\current" "$INSTDIR\versions\${VERSION}"'
108102Pop $R9
109103StrCpy $appExe " $INSTDIR\current\${APP_EXECUTABLE_FILENAME}"
110- DetailPrint " Step 8/10 - Writing install location and Add/Remove Programs registry entries..."
104+ !insertmacro HspInstallDetailPrint " Step 8/10 - Writing install location and Add/Remove Programs registry entries..."
111105!insertmacro registryAddInstallInfo
112- DetailPrint " Step 9/10 - Creating Start Menu and desktop shortcuts..."
106+ !insertmacro HspInstallDetailPrint " Step 9/10 - Creating Start Menu and desktop shortcuts..."
113107!insertmacro addStartMenuLink $keepShortcuts
114108!insertmacro addDesktopLink $keepShortcuts
115109
@@ -120,13 +114,12 @@ ${else}
120114${endIf}
121115
122116!ifmacrodef registerFileAssociations
123- DetailPrint " Registering file associations..."
117+ !insertmacro HspInstallDetailPrint " Registering file associations..."
124118 !insertmacro registerFileAssociations
125119!endif
126120
127121!ifmacrodef customInstall
128- DetailPrint " Step 10/10 - Running final install hooks..."
129- ; So customInstall's DetailPrint targets the listbox.
122+ !insertmacro HspInstallDetailPrint " Step 10/10 - Running final install hooks..."
130123 SetDetailsPrint listonly
131124 SetDetailsView show
132125 !insertmacro customInstall
0 commit comments