]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/win32/winbacula.nsi.in
This commit was manufactured by cvs2svn to create tag
[bacula/bacula] / bacula / src / win32 / winbacula.nsi.in
index 6cb0334b0e9ca98a5dce11c46318fb537ffde387..349e2e54ceb0aac17276f045c28170aeb00fa630 100755 (executable)
@@ -5,6 +5,18 @@
 ; Updated 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
+;
 ; Command line options:
 ;
 ; /cygwin     -  do cygwin install into c:\cygwin\bacula
@@ -26,6 +38,7 @@
 ;
   Name "Bacula Client"
   OutFile "winbacula-${VERSION}.exe"
+  SetCompressor lzma
   InstallDir "c:\bacula"
 
 ;
@@ -117,15 +130,24 @@ Section "Bacula File Service" SecService
     WriteRegDWORD HKLM "Software\Bacula" "InstalledService" "1"
  NoService:
 
-  ; Write the uninstall keys for Windows
+  ; 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"'
   WriteUninstaller "$INSTDIR\Uninstall.exe"
+  CreateShortCut "$SMPROGRAMS\Bacula\Uninstall Bacula.lnk" "$INSTDIR\Uninstall.exe" "" "$INSTDIR\Uninstall.exe" 0
 
   ; Create bacula-fd.conf and have the user edit it (skipped if silent)
   IfSilent NoReminder
   StrCmp $7 "1" NoReminder  ; skip if it is an upgrade
-  MessageBox MB_OK "Please edit $INSTDIR\bin\bacula-fd.conf according to your requirements/installation! Also remember to put a shortcut into your start menu if you didn't install the client as a service."
+  MessageBox MB_OK "Please edit the client configuration file $INSTDIR\bin\bacula-fd.conf to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
   Exec 'write "$INSTDIR\bin\bacula-fd.conf"'  ; spawn wordpad with the file to be edited
  NoReminder:
 
@@ -138,8 +160,11 @@ Section "Bacula File Service" SecService
   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
@@ -158,22 +183,35 @@ Section "Install Console" SecConsole
   goto do_next
  newconf:
   File /oname=bconsole.conf.new console\bconsole.conf
-       
-  ; If /service was given jump to the service install part
  do_next:
+
+  ; Create bconsole.conf and have the user edit it (skipped if silent)
+  IfSilent NoReminder
+  StrCmp $7 "1" NoReminder  ; skip if it is an upgrade
+  MessageBox MB_OK "Please edit the command line console configuration file $INSTDIR\bin\bconsole.conf to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
+  Exec 'write "$INSTDIR\bin\bconsole.conf"'  ; spawn wordpad with the file to be edited
+ NoReminder:
 SectionEnd
 
 Section "Install wx-Console" SecWxConsole
   SetOutPath "$INSTDIR\bin"
   File wx-console\Release\wx-console.exe
   IfFileExists "$INSTDIR\bin\wx-console.conf" newconf 
-  File console\wx-console.conf
+  File wx-console\wx-console.conf
   goto do_next
  newconf:
-  File /oname=wx-console.conf.new console\wx-console.conf
-       
-  ; If /service was given jump to the service install part
+  File /oname=wx-console.conf.new wx-console\wx-console.conf
  do_next:
+  ; Create Start Menu entry
+  SetShellVarContext all
+  CreateShortCut "$SMPROGRAMS\Bacula\WX-Console.lnk" "$INSTDIR\bin\wx-console.exe" "-c $INSTDIR\bin\wx-console.conf" "$INSTDIR\bin\wx-console.exe" 0
+
+  ; Create wx-console.conf and have the user edit it (skipped if silent)
+  IfSilent NoReminder
+  StrCmp $7 "1" NoReminder  ; skip if it is an upgrade
+  MessageBox MB_OK "Please edit the WX-console configuration file $INSTDIR\bin\wx-console.conf to fit your installation. When you click the OK button Wordpad will open to allow you to do this. Be sure to save your changes before closing Wordpad."
+  Exec 'write "$INSTDIR\bin\wx-console.conf"'  ; spawn wordpad with the file to be edited
+ NoReminder:
 SectionEnd
 
 
@@ -192,7 +230,7 @@ SectionEnd
   LangString DESC_SecService ${LANG_ENGLISH} "Install Bacula client on this system."
   LangString DESC_SecConsole ${LANG_ENGLISH} "Install Console program on this system."
   LangString DESC_SecWxConsole ${LANG_ENGLISH} "Install graphical console program on this system."
-  LangString DESC_SecDoc ${LANG_ENGLISH} "Install Documenation on this system."
+  LangString DESC_SecDoc ${LANG_ENGLISH} "Install Documentation on this system."
 
   !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
     !insertmacro MUI_DESCRIPTION_TEXT ${SecService} $(DESC_SecService)
@@ -222,18 +260,32 @@ Section "Uninstall"
   DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Bacula"
   DeleteRegKey HKLM "Software\Bacula"
 
+  ; remove start menu items
+  SetShellVarContext all
+  Delete /REBOOTOK "$SMPROGRAMS\Bacula\*"
+
   ; 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"
@@ -241,6 +293,7 @@ Section "Uninstall"
   RMDir "$INSTDIR"
   RMDir "C:\tmp"
   LeaveConfig:
+  RMDir "$SMPROGRAMS\Bacula"
   
 SectionEnd