2022-05-21 18:42:56 +02:00
|
|
|
!define APP_NAME "Netbird"
|
|
|
|
!define COMP_NAME "Netbird"
|
|
|
|
!define WEB_SITE "Netbird.io"
|
2021-09-06 10:20:26 +02:00
|
|
|
!define VERSION $%APPVER%
|
2022-05-21 18:42:56 +02:00
|
|
|
!define COPYRIGHT "Netbird Authors, 2021"
|
2021-09-06 10:20:26 +02:00
|
|
|
!define DESCRIPTION "A WireGuard®-based mesh network that connects your devices into a single private network"
|
2022-05-21 18:42:56 +02:00
|
|
|
!define INSTALLER_NAME "netbird-installer.exe"
|
|
|
|
!define MAIN_APP_EXE "Netbird"
|
|
|
|
!define ICON "ui\\netbird.ico"
|
2021-09-06 10:20:26 +02:00
|
|
|
!define BANNER "ui\\banner.bmp"
|
|
|
|
!define LICENSE_DATA "..\\LICENSE"
|
|
|
|
|
|
|
|
!define INSTALL_DIR "$PROGRAMFILES64\${APP_NAME}"
|
|
|
|
!define INSTALL_TYPE "SetShellVarContext all"
|
|
|
|
!define REG_ROOT "HKLM"
|
|
|
|
!define REG_APP_PATH "Software\Microsoft\Windows\CurrentVersion\App Paths\${MAIN_APP_EXE}"
|
|
|
|
!define UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}"
|
2022-03-23 18:24:25 +01:00
|
|
|
|
2022-05-21 18:42:56 +02:00
|
|
|
!define UI_APP_NAME "Netbird UI"
|
|
|
|
!define UI_APP_EXE "Netbird-ui"
|
2022-03-23 18:24:25 +01:00
|
|
|
|
|
|
|
!define UI_REG_APP_PATH "Software\Microsoft\Windows\CurrentVersion\App Paths\${UI_APP_EXE}"
|
|
|
|
!define UI_UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${UI_APP_NAME}"
|
|
|
|
|
2021-09-06 10:20:26 +02:00
|
|
|
Unicode True
|
|
|
|
|
|
|
|
######################################################################
|
|
|
|
|
|
|
|
VIProductVersion "${VERSION}"
|
|
|
|
VIAddVersionKey "ProductName" "${APP_NAME}"
|
|
|
|
VIAddVersionKey "CompanyName" "${COMP_NAME}"
|
|
|
|
VIAddVersionKey "LegalCopyright" "${COPYRIGHT}"
|
|
|
|
VIAddVersionKey "FileDescription" "${DESCRIPTION}"
|
|
|
|
VIAddVersionKey "FileVersion" "${VERSION}"
|
|
|
|
|
|
|
|
######################################################################
|
|
|
|
|
|
|
|
SetCompressor /SOLID Lzma
|
|
|
|
Name "${APP_NAME}"
|
|
|
|
Caption "${APP_NAME}"
|
|
|
|
OutFile "..\\${INSTALLER_NAME}"
|
|
|
|
BrandingText "${APP_NAME}"
|
|
|
|
InstallDirRegKey "${REG_ROOT}" "${REG_APP_PATH}" ""
|
|
|
|
InstallDir "${INSTALL_DIR}"
|
|
|
|
LicenseData "${LICENSE_DATA}"
|
|
|
|
ShowInstDetails Show
|
|
|
|
|
|
|
|
######################################################################
|
|
|
|
|
|
|
|
!define MUI_ICON "${ICON}"
|
|
|
|
!define MUI_UNICON "${ICON}"
|
|
|
|
!define MUI_WELCOMEFINISHPAGE_BITMAP "${BANNER}"
|
|
|
|
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${BANNER}"
|
|
|
|
|
|
|
|
######################################################################
|
|
|
|
|
|
|
|
!include "MUI2.nsh"
|
|
|
|
|
|
|
|
!define MUI_ABORTWARNING
|
|
|
|
!define MUI_UNABORTWARNING
|
|
|
|
|
|
|
|
!insertmacro MUI_PAGE_WELCOME
|
|
|
|
|
|
|
|
!insertmacro MUI_PAGE_LICENSE "${LICENSE_DATA}"
|
|
|
|
|
|
|
|
!insertmacro MUI_PAGE_DIRECTORY
|
|
|
|
|
|
|
|
!insertmacro MUI_PAGE_INSTFILES
|
|
|
|
|
|
|
|
!insertmacro MUI_PAGE_FINISH
|
|
|
|
|
|
|
|
!insertmacro MUI_UNPAGE_CONFIRM
|
|
|
|
|
|
|
|
!insertmacro MUI_UNPAGE_INSTFILES
|
|
|
|
|
|
|
|
!insertmacro MUI_UNPAGE_FINISH
|
|
|
|
|
|
|
|
!insertmacro MUI_LANGUAGE "English"
|
|
|
|
|
|
|
|
######################################################################
|
|
|
|
|
|
|
|
Section -MainProgram
|
|
|
|
${INSTALL_TYPE}
|
|
|
|
SetOverwrite ifnewer
|
|
|
|
SetOutPath "$INSTDIR"
|
2022-05-21 18:42:56 +02:00
|
|
|
File /r "..\\dist\\netbird_windows_amd64\\"
|
2021-09-06 10:20:26 +02:00
|
|
|
|
|
|
|
SectionEnd
|
|
|
|
|
|
|
|
######################################################################
|
|
|
|
|
|
|
|
Section -Icons_Reg
|
|
|
|
SetOutPath "$INSTDIR"
|
2022-05-21 18:42:56 +02:00
|
|
|
WriteUninstaller "$INSTDIR\netbird_uninstall.exe"
|
2021-09-06 10:20:26 +02:00
|
|
|
|
|
|
|
WriteRegStr ${REG_ROOT} "${REG_APP_PATH}" "" "$INSTDIR\${MAIN_APP_EXE}"
|
|
|
|
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayName" "${APP_NAME}"
|
2022-05-21 18:42:56 +02:00
|
|
|
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "UninstallString" "$INSTDIR\netbird_uninstall.exe"
|
2021-09-06 10:20:26 +02:00
|
|
|
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayIcon" "$INSTDIR\${MAIN_APP_EXE}"
|
|
|
|
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayVersion" "${VERSION}"
|
|
|
|
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "Publisher" "${COMP_NAME}"
|
|
|
|
|
2022-03-23 18:24:25 +01:00
|
|
|
WriteRegStr ${REG_ROOT} "${UI_REG_APP_PATH}" "" "$INSTDIR\${UI_APP_EXE}"
|
|
|
|
WriteRegStr ${REG_ROOT} "${UI_UNINSTALL_PATH}" "DisplayName" "${UI_APP_NAME}"
|
2022-05-21 18:42:56 +02:00
|
|
|
WriteRegStr ${REG_ROOT} "${UI_UNINSTALL_PATH}" "UninstallString" "$INSTDIR\netbird_uninstall.exe"
|
2022-03-23 18:24:25 +01:00
|
|
|
WriteRegStr ${REG_ROOT} "${UI_UNINSTALL_PATH}" "DisplayIcon" "$INSTDIR\${UI_APP_EXE}"
|
|
|
|
WriteRegStr ${REG_ROOT} "${UI_UNINSTALL_PATH}" "DisplayVersion" "${VERSION}"
|
|
|
|
WriteRegStr ${REG_ROOT} "${UI_UNINSTALL_PATH}" "Publisher" "${COMP_NAME}"
|
|
|
|
|
2021-09-06 10:20:26 +02:00
|
|
|
EnVar::SetHKLM
|
|
|
|
EnVar::AddValueEx "path" "$INSTDIR"
|
|
|
|
|
2022-05-21 18:42:56 +02:00
|
|
|
CreateShortCut "${SMPROGRAMS}\${UI_APP_NAME}.lnk" "$INSTDIR\${UI_APP_EXE}"
|
|
|
|
CreateShortCut "${DESKTOP}\${UI_APP_NAME}.lnk" "$INSTDIR\${UI_APP_EXE}"
|
|
|
|
|
2021-09-06 10:20:26 +02:00
|
|
|
Exec '"$INSTDIR\${MAIN_APP_EXE}" service install'
|
2022-03-11 14:05:44 +01:00
|
|
|
Exec '"$INSTDIR\${MAIN_APP_EXE}" service start'
|
2021-09-06 10:20:26 +02:00
|
|
|
# sleep a bit for visibility
|
|
|
|
Sleep 1000
|
|
|
|
SectionEnd
|
|
|
|
|
|
|
|
######################################################################
|
|
|
|
|
|
|
|
Section Uninstall
|
|
|
|
${INSTALL_TYPE}
|
|
|
|
|
2021-11-14 21:30:18 +01:00
|
|
|
Exec '"$INSTDIR\${MAIN_APP_EXE}" service stop'
|
2021-09-06 10:20:26 +02:00
|
|
|
Exec '"$INSTDIR\${MAIN_APP_EXE}" service uninstall'
|
|
|
|
# wait the service uninstall take unblock the executable
|
|
|
|
Sleep 3000
|
|
|
|
RmDir /r "$INSTDIR"
|
|
|
|
|
|
|
|
DeleteRegKey ${REG_ROOT} "${REG_APP_PATH}"
|
|
|
|
DeleteRegKey ${REG_ROOT} "${UNINSTALL_PATH}"
|
|
|
|
EnVar::SetHKLM
|
|
|
|
EnVar::DeleteValue "path" "$INSTDIR"
|
2022-03-23 18:24:25 +01:00
|
|
|
SectionEnd
|