Newer
Older
monitord / win32-nsis / monitord.nsi
;NSIS Modern User Interface
;Basic Example Script
;Written by Joost Verburg

;--------------------------------
;Include Modern UI

  !include "MUI.nsh"

;--------------------------------
;General

  ;Name and file
  Name "monitord v2.0svn"
  OutFile "monitord-setup.exe"

  ;Default installation folder
  InstallDir "$PROGRAMFILES\monitord"
  
  ;Get installation folder from registry if available
  InstallDirRegKey HKCU "Software\monitord" ""

;--------------------------------
;Interface Settings

  !define MUI_ABORTWARNING

;--------------------------------
;Pages
  !insertmacro MUI_PAGE_WELCOME
  !insertmacro MUI_PAGE_LICENSE "license.txt"
  !insertmacro MUI_PAGE_COMPONENTS
  !insertmacro MUI_PAGE_DIRECTORY
  !insertmacro MUI_PAGE_INSTFILES
  
  !insertmacro MUI_UNPAGE_CONFIRM
  !insertmacro MUI_UNPAGE_INSTFILES
  !insertmacro MUI_UNPAGE_FINISH
  
;--------------------------------
;Languages
 
  !insertmacro MUI_LANGUAGE "German"

;--------------------------------
;Installer Sections

Section "Grundprogramm" SecMonitord

  SetOutPath "$INSTDIR"
  
  ; Dateiliste
  File ..\monitord\monitord.exe
    File _start.bat
    File _stop.bat
    File _install-service.bat
    File _uninstall-service.bat
                
  
  ;Konfigfile nur erstellen, wenn es noch keins gibt. Sonst als
  ;monitord.xml.new speichern
  IfFileExists "$INSTDIR\monitord.xml" +1 +3
  File /oname=monitord.xml.new ..\sample-config\monitord.xml.win32
  goto +2
  File /oname=monitord.xml ..\sample-config\monitord.xml.win32

  ;Store installation folder
  WriteRegStr HKCU "Software\monitord" "" $INSTDIR
  
  ;Startmenu
  
  CreateDirectory "$SMPROGRAMS\monitord"
  CreateShortCut "$SMPROGRAMS\monitord\monitord.lnk" "$INSTDIR\monitord.exe"
  CreateShortCut "$SMPROGRAMS\monitord\Konfiguration bearbeiten.lnk" "notepad" "$INSTDIR\monitord.xml"
  CreateShortCut "$SMPROGRAMS\monitord\uninstall.lnk" "$INSTDIR\uninstall.exe"
  

  ;Create uninstaller
  WriteUninstaller "$INSTDIR\Uninstall.exe"
  
   ; In Systemsteuerung/Software eintragen mit "Nur Entfernen"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\monitord" \
				"DisplayName" "monitord"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\monitord" \
                 "UninstallString" "$INSTDIR\uninstall.exe"
  WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\monitord" \
                 "NoModify" 1
  WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\monitord" \
                 "NoRepair" 1

SectionEnd

Section "Beispielkonfiguration" SecSamples
  SetOutPath "$INSTDIR\sample-config"
  File "..\sample-config\*"
SectionEnd

Section "Plugins" SecPlugins
  SetOutPath "$INSTDIR\plugins"
  File ..\monitord\plugins\.libs\libmplugin_audiorecorder-0.dll
  File ..\monitord\plugins\.libs\libmplugin_mysql-0.dll
SectionEnd

Section "Dll" SecDLLs

  SetOutPath "$INSTDIR"
  File ..\monitord\libmysql.dll
  File ..\monitord\libmp3lame-0.dll

SectionEnd

;--------------------------------
;Descriptions

  ;Language strings
  LangString DESC_SecMonitord ${LANG_GERMAN} "Das monitord Hauptprogramm"
  LangString DESC_SecPlugins ${LANG_GERMAN} "Plugins zum monitord, z.B. Audiorekorder, MySQL Plugin, ..."
  LangString DESC_SecDLLs ${LANG_GERMAN} "von Plugins benötigte DLLs (mysql.dll, mp3lame, ...)"
  LangString DESC_SecSamples ${LANG_GERMAN} "Beispielkonfigurationen"

  ;Assign language strings to sections
	  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
    !insertmacro MUI_DESCRIPTION_TEXT ${SecMonitord} $(DESC_SecMonitord)
    !insertmacro MUI_DESCRIPTION_TEXT ${SecPlugins} $(DESC_SecPlugins)
    !insertmacro MUI_DESCRIPTION_TEXT ${SecDLLs} $(DESC_SecDLLs)
    !insertmacro MUI_DESCRIPTION_TEXT ${SecSamples} $(DESC_SecSamples)
	!insertmacro MUI_FUNCTION_DESCRIPTION_END

;--------------------------------
;Uninstaller Section

Section "Uninstall"

  ;ADD YOUR OWN FILES HERE...

  Delete "$INSTDIR\Uninstall.exe"
  
  RMDir /r "$INSTDIR"
  Delete "$SMPROGRAMS\monitord.lnk"
  Delete "$SMPROGRAMS\uninstall.lnk"
  RMDir /r "$SMPROGRAMS\monitord"

  DeleteRegKey /ifempty HKCU "Software\monitord"
  ; Aus Systemsteuerung/Software wieder löschen
  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\monitord"

SectionEnd