installer: override windows nsis script
parent
f51b6d4c73
commit
93c33c3572
|
|
@ -0,0 +1,101 @@
|
||||||
|
!include MUI2.nsh
|
||||||
|
!include FileFunc.nsh
|
||||||
|
|
||||||
|
;--------------------------------
|
||||||
|
;Perform Machine-level install, if possible
|
||||||
|
|
||||||
|
!define MULTIUSER_EXECUTIONLEVEL Highest
|
||||||
|
;Add support for command-line args that let uninstaller know whether to
|
||||||
|
;uninstall machine- or user installation:
|
||||||
|
!define MULTIUSER_INSTALLMODE_COMMANDLINE
|
||||||
|
!include MultiUser.nsh
|
||||||
|
!include LogicLib.nsh
|
||||||
|
|
||||||
|
Function .onInit
|
||||||
|
!insertmacro MULTIUSER_INIT
|
||||||
|
;Do not use InstallDir at all so we can detect empty $InstDir!
|
||||||
|
${If} $InstDir == "" ; /D not used
|
||||||
|
${If} $MultiUser.InstallMode == "AllUsers"
|
||||||
|
StrCpy $InstDir "$PROGRAMFILES\${app_name}"
|
||||||
|
${Else}
|
||||||
|
StrCpy $InstDir "$LOCALAPPDATA\${app_name}"
|
||||||
|
${EndIf}
|
||||||
|
${EndIf}
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Function un.onInit
|
||||||
|
!insertmacro MULTIUSER_UNINIT
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
;--------------------------------
|
||||||
|
;General
|
||||||
|
|
||||||
|
Name "${app_name}"
|
||||||
|
OutFile "..\${installer}"
|
||||||
|
|
||||||
|
;--------------------------------
|
||||||
|
;Interface Settings
|
||||||
|
|
||||||
|
!define MUI_ABORTWARNING
|
||||||
|
|
||||||
|
;--------------------------------
|
||||||
|
;Pages
|
||||||
|
|
||||||
|
!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of ${app_name}.$\r$\n$\r$\n$\r$\nClick Next to continue."
|
||||||
|
!insertmacro MUI_PAGE_WELCOME
|
||||||
|
!insertmacro MUI_PAGE_DIRECTORY
|
||||||
|
!insertmacro MUI_PAGE_INSTFILES
|
||||||
|
!define MUI_FINISHPAGE_NOAUTOCLOSE
|
||||||
|
!define MUI_FINISHPAGE_RUN
|
||||||
|
!define MUI_FINISHPAGE_RUN_CHECKED
|
||||||
|
!define MUI_FINISHPAGE_RUN_TEXT "Run ${app_name}"
|
||||||
|
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink"
|
||||||
|
!insertmacro MUI_PAGE_FINISH
|
||||||
|
|
||||||
|
!insertmacro MUI_UNPAGE_CONFIRM
|
||||||
|
!insertmacro MUI_UNPAGE_INSTFILES
|
||||||
|
|
||||||
|
;--------------------------------
|
||||||
|
;Languages
|
||||||
|
|
||||||
|
!insertmacro MUI_LANGUAGE "English"
|
||||||
|
|
||||||
|
;--------------------------------
|
||||||
|
;Installer Sections
|
||||||
|
|
||||||
|
!define UNINST_KEY \
|
||||||
|
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${app_name}"
|
||||||
|
Section
|
||||||
|
SetOutPath "$InstDir"
|
||||||
|
File /r "..\${app_name}\*"
|
||||||
|
WriteRegStr SHCTX "Software\${app_name}" "" $InstDir
|
||||||
|
WriteUninstaller "$InstDir\uninstall.exe"
|
||||||
|
CreateShortCut "$SMPROGRAMS\${app_name}.lnk" "$InstDir\${app_name}.exe"
|
||||||
|
WriteRegStr SHCTX "${UNINST_KEY}" "DisplayName" "${app_name}"
|
||||||
|
WriteRegStr SHCTX "${UNINST_KEY}" "UninstallString" \
|
||||||
|
"$\"$InstDir\uninstall.exe$\" /$MultiUser.InstallMode"
|
||||||
|
WriteRegStr SHCTX "${UNINST_KEY}" "QuietUninstallString" \
|
||||||
|
"$\"$InstDir\uninstall.exe$\" /$MultiUser.InstallMode /S"
|
||||||
|
WriteRegStr SHCTX "${UNINST_KEY}" "Publisher" "${author}"
|
||||||
|
${GetSize} "$InstDir" "/S=0K" $0 $1 $2
|
||||||
|
IntFmt $0 "0x%08X" $0
|
||||||
|
WriteRegDWORD SHCTX "${UNINST_KEY}" "EstimatedSize" "$0"
|
||||||
|
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
;--------------------------------
|
||||||
|
;Uninstaller Section
|
||||||
|
|
||||||
|
Section "Uninstall"
|
||||||
|
|
||||||
|
RMDir /r "$InstDir"
|
||||||
|
Delete "$SMPROGRAMS\${app_name}.lnk"
|
||||||
|
DeleteRegKey /ifempty SHCTX "Software\${app_name}"
|
||||||
|
DeleteRegKey SHCTX "${UNINST_KEY}"
|
||||||
|
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
Function LaunchLink
|
||||||
|
!addplugindir "."
|
||||||
|
ShellExecAsUser::ShellExecAsUser "open" "$SMPROGRAMS\${app_name}.lnk"
|
||||||
|
FunctionEnd
|
||||||
Loading…
Reference in New Issue