mirror of
https://github.com/netdata/netdata.git
synced 2025-04-07 23:05:41 +00:00
128 lines
3.9 KiB
NSIS
128 lines
3.9 KiB
NSIS
!include "MUI2.nsh"
|
|
!include "nsDialogs.nsh"
|
|
!include "FileFunc.nsh"
|
|
|
|
Name "Netdata"
|
|
Outfile "netdata-installer.exe"
|
|
InstallDir "$PROGRAMFILES\Netdata"
|
|
RequestExecutionLevel admin
|
|
|
|
!define MUI_ICON "NetdataWhite.ico"
|
|
!define MUI_UNICON "NetdataWhite.ico"
|
|
|
|
!define ND_UININSTALL_REG "Software\Microsoft\Windows\CurrentVersion\Uninstall\Netdata"
|
|
|
|
!define MUI_ABORTWARNING
|
|
!define MUI_UNABORTWARNING
|
|
|
|
!insertmacro MUI_PAGE_WELCOME
|
|
!insertmacro MUI_PAGE_LICENSE "C:\msys64\gpl-3.0.txt"
|
|
!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"
|
|
|
|
Function .onInit
|
|
nsExec::ExecToLog '$SYSDIR\sc.exe stop Netdata'
|
|
pop $0
|
|
${If} $0 == 0
|
|
nsExec::ExecToLog '$SYSDIR\sc.exe delete Netdata'
|
|
pop $0
|
|
${EndIf}
|
|
FunctionEnd
|
|
|
|
Function NetdataUninstallRegistry
|
|
ClearErrors
|
|
WriteRegStr HKLM "${ND_UININSTALL_REG}" \
|
|
"DisplayName" "Netdata - Real-time system monitoring."
|
|
WriteRegStr HKLM "${ND_UININSTALL_REG}" \
|
|
"DisplayIcon" "$INSTDIR\Uninstall.exe,0"
|
|
WriteRegStr HKLM "${ND_UININSTALL_REG}" \
|
|
"UninstallString" "$INSTDIR\Uninstall.exe"
|
|
WriteRegStr HKLM "${ND_UININSTALL_REG}" \
|
|
"RegOwner" "Netdata Inc."
|
|
WriteRegStr HKLM "${ND_UININSTALL_REG}" \
|
|
"RegCompany" "Netdata Inc."
|
|
WriteRegStr HKLM "${ND_UININSTALL_REG}" \
|
|
"Publisher" "Netdata Inc."
|
|
WriteRegStr HKLM "${ND_UININSTALL_REG}" \
|
|
"HelpLink" "https://learn.netdata.cloud/"
|
|
WriteRegStr HKLM "${ND_UININSTALL_REG}" \
|
|
"URLInfoAbout" "https://www.netdata.cloud/"
|
|
WriteRegStr HKLM "${ND_UININSTALL_REG}" \
|
|
"DisplayVersion" "${CURRVERSION}"
|
|
WriteRegStr HKLM "${ND_UININSTALL_REG}" \
|
|
"VersionMajor" "${MAJORVERSION}"
|
|
WriteRegStr HKLM "${ND_UININSTALL_REG}" \
|
|
"VersionMinor" "${MINORVERSION}"
|
|
|
|
IfErrors 0 +2
|
|
MessageBox MB_ICONEXCLAMATION|MB_OK "Unable to create an entry in the Control Panel!" IDOK end
|
|
|
|
ClearErrors
|
|
${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
|
|
IntFmt $0 "0x%08X" $0
|
|
WriteRegDWORD HKLM "${ND_UININSTALL_REG}" "EstimatedSize" "$0"
|
|
|
|
IfErrors 0 +2
|
|
MessageBox MB_ICONEXCLAMATION|MB_OK "Cannot estimate the installation size." IDOK end
|
|
end:
|
|
FunctionEnd
|
|
|
|
Section "Install Netdata"
|
|
SetOutPath $INSTDIR
|
|
SetCompress off
|
|
|
|
File /r "C:\msys64\opt\netdata\*.*"
|
|
|
|
ClearErrors
|
|
nsExec::ExecToLog '$SYSDIR\sc.exe create Netdata binPath= "$INSTDIR\usr\bin\netdata.exe" start= delayed-auto'
|
|
pop $0
|
|
${If} $0 != 0
|
|
DetailPrint "Warning: Failed to create Netdata service."
|
|
${EndIf}
|
|
|
|
ClearErrors
|
|
nsExec::ExecToLog '$SYSDIR\sc.exe description Netdata "Real-time system monitoring service"'
|
|
pop $0
|
|
${If} $0 != 0
|
|
DetailPrint "Warning: Failed to add Netdata service description."
|
|
${EndIf}
|
|
|
|
ClearErrors
|
|
nsExec::ExecToLog '$SYSDIR\sc.exe start Netdata'
|
|
pop $0
|
|
${If} $0 != 0
|
|
DetailPrint "Warning: Failed to start Netdata service."
|
|
${EndIf}
|
|
|
|
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
|
|
|
Call NetdataUninstallRegistry
|
|
SectionEnd
|
|
|
|
Section "Uninstall"
|
|
ClearErrors
|
|
nsExec::ExecToLog '$SYSDIR\sc.exe stop Netdata'
|
|
pop $0
|
|
${If} $0 != 0
|
|
DetailPrint "Warning: Failed to stop Netdata service."
|
|
${EndIf}
|
|
|
|
ClearErrors
|
|
nsExec::ExecToLog '$SYSDIR\sc.exe delete Netdata'
|
|
pop $0
|
|
${If} $0 != 0
|
|
DetailPrint "Warning: Failed to delete Netdata service."
|
|
${EndIf}
|
|
|
|
RMDir /r "$INSTDIR"
|
|
|
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Netdata"
|
|
SectionEnd
|
|
|