61 lines
1.6 KiB
Text
61 lines
1.6 KiB
Text
# Copyright 2023 Signal Messenger, LLC
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
!include WinVer.nsh
|
|
!include SignalStrings.nsh
|
|
|
|
ManifestDPIAware true
|
|
|
|
!macro preInit
|
|
Var /Global OLD_SIGNAL_VERSION
|
|
|
|
# Check minimum OS version
|
|
${IfNot} ${AtLeastWin10}
|
|
MessageBox MB_OK|MB_ICONEXCLAMATION "$(signalMinWinVersionErr)"
|
|
DetailPrint `Windows version check failed`
|
|
Abort
|
|
${EndIf}
|
|
|
|
# If previously installed
|
|
ReadRegStr $OLD_SIGNAL_VERSION SHELL_CONTEXT "${UNINSTALL_REGISTRY_KEY}" \
|
|
"DisplayVersion"
|
|
StrCmp $OLD_SIGNAL_VERSION "" end_semver_check
|
|
|
|
# Check that we are not overwriting newer version of the app.
|
|
${StdUtils.ScanStr3} $R0 $R1 $R2 "%d.%d.%d" $OLD_SIGNAL_VERSION 0 0 0
|
|
${StdUtils.ScanStr3} $R3 $R4 $R5 "%d.%d.%d" ${VERSION} 0 0 0
|
|
|
|
# Compare major number
|
|
IntCmp $R0 $R3 same_major end_semver_check downgrade
|
|
|
|
# Compare minor number
|
|
same_major:
|
|
IntCmp $R1 $R4 same_minor end_semver_check downgrade
|
|
|
|
# Compare patch number
|
|
same_minor:
|
|
IntCmp $R2 $R5 end_semver_check end_semver_check downgrade
|
|
|
|
# Detected downgrade - show message box
|
|
downgrade:
|
|
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
|
|
"$(signalMinAppVersionErr)" /SD IDCANCEL IDOK end_semver_check
|
|
DetailPrint `SemVer check failed`
|
|
Abort
|
|
|
|
end_semver_check:
|
|
!macroend
|
|
|
|
!macro customInstall
|
|
${If} ${Silent}
|
|
${AndIf} ${isUpdated}
|
|
# Copied from app-builder-lib templates/nsis/common.nsh:
|
|
|
|
# "otherwise app window will be in background"
|
|
HideWindow
|
|
|
|
# Signal modification: '--start-in-tray' added
|
|
${StdUtils.ExecShellAsUser} $0 "$launchLink" "open" \
|
|
"--updated --start-in-tray"
|
|
${EndIf}
|
|
!macroend
|