; winbacula.nsi
;
-; Written by Michel Meyers (michel@tcnnet.dyndns.org)
+; Began as a version written by Michel Meyers (michel@tcnnet.dyndns.org)
;
-; Updated by Kern Sibbald for native Win32 Bacula
+; Adapted by Kern Sibbald for native Win32 Bacula
; added a number of elements from Christopher Hull's installer
;
; D. Scott Barninger Nov 13 2004
; added configuration editing for bconsole.conf and wx-console.conf
; better explanation in dialog boxes for editing config files
; added Start Menu items
+; fix uninstall of config files to do all not just bacula-fd.conf
+;
+; D. Scott Barninger Dec 05 2004
+; added specification of default permissions for bacula-fd.conf
+; - thanks to Jamie Ffolliott for pointing me at cacls
+; added removal of working-dir files if user selects to remove config
+; uninstall is now 100% clean
+;
+; D. Scott Barninger Apr 17 2005
+; 1.36.3 release docs update
+; add pdf manual and menu shortcut
;
; Command line options:
;
; Create Start Menu Directory
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\Bacula"
+ ; If not installed as service create Start Menu link
+ StrCmp $9 "1" Uninstall
CreateShortCut "$SMPROGRAMS\Bacula\Start Bacula Client.lnk" "$INSTDIR\bin\bacula-fd.exe" "-c $INSTDIR\bin\bacula-fd.conf" "$INSTDIR\bin\bacula-fd.exe" 0
+ Uninstall:
; Write the uninstall keys for Windows & create Start Menu entry
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "DisplayName" "Bacula Client"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula" "UninstallString" '"$INSTDIR\uninstall.exe"'
Call IsNt
Pop $R0
StrCmp $R0 "false" do_win98
- MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to start the Bacula Client now?" IDNO NoStart
+ MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to start the Bacula Client now?" IDNO SetPerms
Exec 'net start bacula'
+ SetPerms:
+ ; set default permissions on config file so it's not world readable
+ Exec 'cmd /C echo Y|cacls "$INSTDIR\bin\bacula-fd.conf" /G SYSTEM:F Administrators:F'
goto NoStart
do_win98:
File Start.bat
Section "Install Documentation" SecDoc
SetOutPath "$INSTDIR\doc"
CreateDirectory "$INSTDIR\doc"
- File ..\..\doc\html-manual\*.html
- File ..\..\doc\html-manual\*.gif
- File ..\..\doc\html-manual\*.jpg
+ File ..\..\..\docs\manual\bacula\*.html
+ File ..\..\..\docs\manual\bacula\*.png
+ File ..\..\..\docs\manual\bacula\*.css
+ File ..\..\..\docs\manual\bacula.pdf
+ ; Create Start Menu entry
+ SetShellVarContext all
+ CreateShortCut "$SMPROGRAMS\Bacula\Manual.lnk" "$INSTDIR\doc\bacula.pdf"
SectionEnd
;
; remove files and uninstaller (preserving config for now)
CopyFiles /SILENT "$INSTDIR\bin\bacula-fd.conf" "$INSTDIR\bacula-fd.conf"
+ IfFileExists "$INSTDIR\bin\bconsole.conf" save_bconsole nosave_bconsole
+ save_bconsole:
+ CopyFiles /SILENT "$INSTDIR\bin\bconsole.conf" "$INSTDIR\bconsole.conf"
+ nosave_bconsole:
+ IfFileExists "$INSTDIR\bin\wx-console.conf" save_wxconsole nosave_wxconsole
+ save_wxconsole:
+ CopyFiles /SILENT "$INSTDIR\bin\wx-console.conf" "$INSTDIR\wx-console.conf"
+ nosave_wxconsole:
Delete /REBOOTOK "$INSTDIR\bin\*.*"
Delete /REBOOTOK "$INSTDIR\doc\*.*"
CopyFiles /SILENT "$INSTDIR\bacula-fd.conf" "$INSTDIR\bin\bacula-fd.conf"
CopyFiles /SILENT "$INSTDIR\bconsole.conf" "$INSTDIR\bin\bconsole.conf"
- Delete /REBOOTOK "$INSTDIR\bacula-fd.conf"
+ CopyFiles /SILENT "$INSTDIR\wx-console.conf" "$INSTDIR\bin\wx-console.conf"
+ Delete /REBOOTOK "$INSTDIR\*.conf"
Delete /REBOOTOK "$INSTDIR\Uninstall.exe"
; Check for existing installation
- MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to delete the current configuration file ($INSTDIR\bin\bacula-fd.conf)?" IDNO LeaveConfig
- Delete /REBOOTOK "$INSTDIR\bin\bacula-fd.conf"
+ MessageBox MB_YESNO|MB_ICONQUESTION "Would you like to delete the current configuration files and the working state file?" IDNO LeaveConfig
+ Delete /REBOOTOK "$INSTDIR\bin\*.conf"
+ Delete /REBOOTOK "$INSTDIR\working\*"
; remove directories used
RMDir "$INSTDIR\bin"
RMDir "$INSTDIR\doc"
RMDir "$INSTDIR\working"
RMDir "$INSTDIR"
RMDir "C:\tmp"
- RMDir "$SMPROGRAMS\Bacula"
LeaveConfig:
+ RMDir "$SMPROGRAMS\Bacula"
SectionEnd