From 0c126097eb35eada27df19bf69271ce7fb1332c8 Mon Sep 17 00:00:00 2001 From: Mike Date: Sat, 3 Jul 2021 21:26:18 -0700 Subject: [PATCH] adding logging macros with nsis option. implements #5119 --- .../src/targets/nsis/NsisTarget.ts | 1 + .../src/targets/nsis/nsisOptions.ts | 9 ++++++++- .../app-builder-lib/templates/nsis/common.nsh | 15 +++++++++++++++ .../app-builder-lib/templates/nsis/installer.nsi | 3 +++ .../templates/nsis/uninstaller.nsh | 3 +++ 5 files changed, 30 insertions(+), 1 deletion(-) diff --git a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts index 116ffc0bf4a..dbd6e4b68b4 100644 --- a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts +++ b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts @@ -190,6 +190,7 @@ export class NsisTarget extends Target { BUILD_RESOURCES_DIR: packager.info.buildResourcesDir, APP_PACKAGE_NAME: appInfo.name, + ENABLE_LOGGING: !!options.debugLogging, } if (uninstallAppKey !== guid) { defines.UNINSTALL_REGISTRY_KEY_2 = `Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\${guid}` diff --git a/packages/app-builder-lib/src/targets/nsis/nsisOptions.ts b/packages/app-builder-lib/src/targets/nsis/nsisOptions.ts index 7d899eec493..6b5060abc92 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisOptions.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisOptions.ts @@ -50,8 +50,15 @@ export interface CommonNsisOptions { /** * @private */ - readonly customNsisBinary?: CustomNsisBinary | null + + /** + * Whether or not to enable NSIS logging for debugging + * Note: Requires a debug-enabled NSIS build + * https://github.com/electron-userland/electron-builder/issues/5119#issuecomment-811353612 + * @private + */ + readonly debugLogging?: boolean | null } export interface NsisOptions extends CommonNsisOptions, CommonWindowsInstallerConfiguration, TargetSpecificOptions { diff --git a/packages/app-builder-lib/templates/nsis/common.nsh b/packages/app-builder-lib/templates/nsis/common.nsh index d105a077074..3707ff63960 100644 --- a/packages/app-builder-lib/templates/nsis/common.nsh +++ b/packages/app-builder-lib/templates/nsis/common.nsh @@ -10,6 +10,7 @@ SpaceTexts none FileBufSize 64 Name "${PRODUCT_NAME}" +!define ENABLE_LOGGING !define APP_EXECUTABLE_FILENAME "${PRODUCT_FILENAME}.exe" !define UNINSTALL_FILENAME "Uninstall ${PRODUCT_FILENAME}.exe" @@ -99,3 +100,17 @@ Name "${PRODUCT_NAME}" ${StdUtils.ExecShellAsUser} $0 "$launchLink" "open" "$startAppArgs" !macroend + +!define LogSet "!insertmacro LogSetMacro" +!macro LogSetMacro SETTING + !ifdef ENABLE_LOGGING + LogSet ${SETTING} + !endif +!macroend + +!define LogText "!insertmacro LogTextMacro" +!macro LogTextMacro INPUT_TEXT + !ifdef ENABLE_LOGGING + LogText ${INPUT_TEXT} + !endif +!macroend \ No newline at end of file diff --git a/packages/app-builder-lib/templates/nsis/installer.nsi b/packages/app-builder-lib/templates/nsis/installer.nsi index a228a2945d6..929762282b5 100644 --- a/packages/app-builder-lib/templates/nsis/installer.nsi +++ b/packages/app-builder-lib/templates/nsis/installer.nsi @@ -40,6 +40,9 @@ Var oldMenuDirectory !endif Function .onInit + SetOutPath $INSTDIR + ${LogSet} on + !ifmacrodef preInit !insertmacro preInit !endif diff --git a/packages/app-builder-lib/templates/nsis/uninstaller.nsh b/packages/app-builder-lib/templates/nsis/uninstaller.nsh index 354007f46e0..9e0a7443414 100644 --- a/packages/app-builder-lib/templates/nsis/uninstaller.nsh +++ b/packages/app-builder-lib/templates/nsis/uninstaller.nsh @@ -1,4 +1,7 @@ Function un.onInit + SetOutPath $INSTDIR + ${LogSet} on + !insertmacro check64BitAndSetRegView ${IfNot} ${Silent}