installer.nsi 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. !include "MUI2.nsh"
  2. !include "nsDialogs.nsh"
  3. !include "FileFunc.nsh"
  4. Name "Netdata"
  5. Outfile "netdata-installer.exe"
  6. InstallDir "$PROGRAMFILES\Netdata"
  7. RequestExecutionLevel admin
  8. !define MUI_ICON "NetdataWhite.ico"
  9. !define MUI_UNICON "NetdataWhite.ico"
  10. !define ND_UININSTALL_REG "Software\Microsoft\Windows\CurrentVersion\Uninstall\Netdata"
  11. !define MUI_ABORTWARNING
  12. !define MUI_UNABORTWARNING
  13. !insertmacro MUI_PAGE_WELCOME
  14. !insertmacro MUI_PAGE_LICENSE "C:\msys64\gpl-3.0.txt"
  15. !insertmacro MUI_PAGE_DIRECTORY
  16. !insertmacro MUI_PAGE_INSTFILES
  17. !insertmacro MUI_PAGE_FINISH
  18. !insertmacro MUI_UNPAGE_CONFIRM
  19. !insertmacro MUI_UNPAGE_INSTFILES
  20. !insertmacro MUI_UNPAGE_FINISH
  21. !insertmacro MUI_LANGUAGE "English"
  22. Function .onInit
  23. nsExec::ExecToLog '$SYSDIR\sc.exe stop Netdata'
  24. pop $0
  25. ${If} $0 == 0
  26. nsExec::ExecToLog '$SYSDIR\sc.exe delete Netdata'
  27. pop $0
  28. ${EndIf}
  29. FunctionEnd
  30. Function NetdataUninstallRegistry
  31. ClearErrors
  32. WriteRegStr HKLM "${ND_UININSTALL_REG}" \
  33. "DisplayName" "Netdata - Real-time system monitoring."
  34. WriteRegStr HKLM "${ND_UININSTALL_REG}" \
  35. "DisplayIcon" "$INSTDIR\Uninstall.exe,0"
  36. WriteRegStr HKLM "${ND_UININSTALL_REG}" \
  37. "UninstallString" "$INSTDIR\Uninstall.exe"
  38. WriteRegStr HKLM "${ND_UININSTALL_REG}" \
  39. "RegOwner" "Netdata Inc."
  40. WriteRegStr HKLM "${ND_UININSTALL_REG}" \
  41. "RegCompany" "Netdata Inc."
  42. WriteRegStr HKLM "${ND_UININSTALL_REG}" \
  43. "Publisher" "Netdata Inc."
  44. WriteRegStr HKLM "${ND_UININSTALL_REG}" \
  45. "HelpLink" "https://learn.netdata.cloud/"
  46. WriteRegStr HKLM "${ND_UININSTALL_REG}" \
  47. "URLInfoAbout" "https://www.netdata.cloud/"
  48. WriteRegStr HKLM "${ND_UININSTALL_REG}" \
  49. "DisplayVersion" "${CURRVERSION}"
  50. WriteRegStr HKLM "${ND_UININSTALL_REG}" \
  51. "VersionMajor" "${MAJORVERSION}"
  52. WriteRegStr HKLM "${ND_UININSTALL_REG}" \
  53. "VersionMinor" "${MINORVERSION}"
  54. IfErrors 0 +2
  55. MessageBox MB_ICONEXCLAMATION|MB_OK "Unable to create an entry in the Control Panel!" IDOK end
  56. ClearErrors
  57. ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2
  58. IntFmt $0 "0x%08X" $0
  59. WriteRegDWORD HKLM "${ND_UININSTALL_REG}" "EstimatedSize" "$0"
  60. IfErrors 0 +2
  61. MessageBox MB_ICONEXCLAMATION|MB_OK "Cannot estimate the installation size." IDOK end
  62. end:
  63. FunctionEnd
  64. Section "Install Netdata"
  65. SetOutPath $INSTDIR
  66. SetCompress off
  67. File /r "C:\msys64\opt\netdata\*.*"
  68. ClearErrors
  69. nsExec::ExecToLog '$SYSDIR\sc.exe create Netdata binPath= "$INSTDIR\usr\bin\netdata.exe" start= delayed-auto'
  70. pop $0
  71. ${If} $0 != 0
  72. DetailPrint "Warning: Failed to create Netdata service."
  73. ${EndIf}
  74. ClearErrors
  75. nsExec::ExecToLog '$SYSDIR\sc.exe description Netdata "Real-time system monitoring service"'
  76. pop $0
  77. ${If} $0 != 0
  78. DetailPrint "Warning: Failed to add Netdata service description."
  79. ${EndIf}
  80. ClearErrors
  81. nsExec::ExecToLog '$SYSDIR\sc.exe start Netdata'
  82. pop $0
  83. ${If} $0 != 0
  84. DetailPrint "Warning: Failed to start Netdata service."
  85. ${EndIf}
  86. WriteUninstaller "$INSTDIR\Uninstall.exe"
  87. Call NetdataUninstallRegistry
  88. SectionEnd
  89. Section "Uninstall"
  90. ClearErrors
  91. nsExec::ExecToLog '$SYSDIR\sc.exe stop Netdata'
  92. pop $0
  93. ${If} $0 != 0
  94. DetailPrint "Warning: Failed to stop Netdata service."
  95. ${EndIf}
  96. ClearErrors
  97. nsExec::ExecToLog '$SYSDIR\sc.exe delete Netdata'
  98. pop $0
  99. ${If} $0 != 0
  100. DetailPrint "Warning: Failed to delete Netdata service."
  101. ${EndIf}
  102. RMDir /r "$INSTDIR"
  103. DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Netdata"
  104. SectionEnd