Improvement for the Installer
bzr revid: stephane@tinyerp.com-20081029112251-g4g1vhou3tjzim1m
This commit is contained in:
parent
746f26310d
commit
72d240c20b
|
@ -1,270 +1,173 @@
|
|||
;NSIS Modern User Interface
|
||||
;Start Menu Folder Selection Example Script
|
||||
;Written by Joost Verburg
|
||||
; NSIS Modern User Interface
|
||||
; Start Menu Folder Selection Example Script
|
||||
; Written by Joost Verburg
|
||||
; Modified By Stephane Wirtel - Tiny SPRL
|
||||
|
||||
;--------------------------------
|
||||
;Include Modern UI
|
||||
|
||||
!include "MUI.nsh"
|
||||
!include "MUI.nsh"
|
||||
|
||||
;--------------------------------
|
||||
;General
|
||||
|
||||
;Name and file
|
||||
Name "OpenERP Server"
|
||||
OutFile "openerp-server-setup.exe"
|
||||
;Name and file
|
||||
Name "OpenERP Server"
|
||||
OutFile "openerp-server-setup.exe"
|
||||
|
||||
;Default installation folder
|
||||
InstallDir "$PROGRAMFILES\OpenERP Server"
|
||||
|
||||
;Get installation folder from registry if available
|
||||
InstallDirRegKey HKCU "Software\OpenERP Server" ""
|
||||
;Default installation folder
|
||||
InstallDir "$PROGRAMFILES\OpenERP Server"
|
||||
|
||||
;Vista redirects $SMPROGRAMS to all users without this
|
||||
RequestExecutionLevel admin
|
||||
;Get installation folder from registry if available
|
||||
InstallDirRegKey HKCU "Software\OpenERP Server" ""
|
||||
|
||||
;Vista redirects $SMPROGRAMS to all users without this
|
||||
RequestExecutionLevel admin
|
||||
|
||||
;--------------------------------
|
||||
;Variables
|
||||
|
||||
Var MUI_TEMP
|
||||
Var STARTMENU_FOLDER
|
||||
Var MUI_TEMP
|
||||
Var STARTMENU_FOLDER
|
||||
|
||||
;--------------------------------
|
||||
;Interface Settings
|
||||
|
||||
!define MUI_ABORTWARNING
|
||||
!define MUI_ABORTWARNING
|
||||
|
||||
;--------------------------------
|
||||
;Pages
|
||||
|
||||
!define MUI_ICON ".\pixmaps\openerp.ico"
|
||||
!define MUI_UNICON ".\pixmaps\openerp.ico"
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP ".\pixmaps\openerp-intro.bmp"
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP ".\pixmaps\openerp-header.bmp"
|
||||
!define MUI_ICON ".\pixmaps\openerp.ico"
|
||||
!define MUI_UNICON ".\pixmaps\openerp.ico"
|
||||
!define MUI_WELCOMEFINISHPAGE_BITMAP ".\pixmaps\openerp-intro.bmp"
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP ".\pixmaps\openerp-header.bmp"
|
||||
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_LICENSE "doc\\License.rtf"
|
||||
# !insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
|
||||
;Start Menu Folder Page Configuration
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenERP Server"
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "OpenERP Server"
|
||||
|
||||
!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
|
||||
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_LICENSE "doc\\License.rtf"
|
||||
# !insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
|
||||
!define MUI_FINISHPAGE_NOAUTOCLOSE
|
||||
!define MUI_FINISHPAGE_RUN
|
||||
!define MUI_FINISHPAGE_RUN_CHECKED
|
||||
!define MUI_FINISHPAGE_RUN_TEXT "Start OpenERP Server"
|
||||
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink"
|
||||
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
|
||||
!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\README.txt
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
;Start Menu Folder Page Configuration
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenERP Server"
|
||||
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "OpenERP Server"
|
||||
|
||||
|
||||
!insertmacro MUI_UNPAGE_WELCOME
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
|
||||
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
!define MUI_FINISHPAGE_NOAUTOCLOSE
|
||||
!define MUI_FINISHPAGE_RUN
|
||||
!define MUI_FINISHPAGE_RUN_CHECKED
|
||||
!define MUI_FINISHPAGE_RUN_TEXT "Start OpenERP Server"
|
||||
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink"
|
||||
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
|
||||
!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\README.txt
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
|
||||
|
||||
!insertmacro MUI_UNPAGE_WELCOME
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
|
||||
;--------------------------------
|
||||
;Languages
|
||||
|
||||
!insertmacro MUI_LANGUAGE "English"
|
||||
|
||||
!insertmacro MUI_LANGUAGE "English"
|
||||
|
||||
;--------------------------------
|
||||
;Installer Sections
|
||||
|
||||
Section "OpenERP Server" SecOpenERPServer
|
||||
|
||||
nsExec::Exec "net stop openerp-service"
|
||||
sleep 2
|
||||
nsExec::Exec "net stop openerp-service"
|
||||
sleep 2
|
||||
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
;ADD YOUR OWN FILES HERE...
|
||||
File /r "dist\\*"
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
SetOutPath "$INSTDIR\service"
|
||||
File /r "win32\\dist\\*"
|
||||
File "win32\\start.bat"
|
||||
File "win32\\stop.bat"
|
||||
;ADD YOUR OWN FILES HERE...
|
||||
File /r "dist\\*"
|
||||
|
||||
;Store installation folder
|
||||
WriteRegStr HKCU "Software\OpenERP Server" "" $INSTDIR
|
||||
|
||||
;Create uninstaller
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenERP Server" "DisplayName" "OpenERP Server (remove only)"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenERP Server" "UninstallString" "$INSTDIR\Uninstall.exe"
|
||||
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||
|
||||
SetOutPath "$INSTDIR\service"
|
||||
File /r "win32\\dist\\*"
|
||||
File "win32\\start.bat"
|
||||
File "win32\\stop.bat"
|
||||
|
||||
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
|
||||
|
||||
;Create shortcuts
|
||||
CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\OpenERP Server.lnk" "$INSTDIR\openerp-server.exe"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Start service.lnk" "$INSTDIR\service\start.bat"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Stop service.lnk" "$INSTDIR\service\stop.bat"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Edit config.lnk" "notepad.exe" "$INSTDIR\openerp-server.conf"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\View log.lnk" "notepad.exe" "$INSTDIR\openerp-server.log"
|
||||
|
||||
!insertmacro MUI_STARTMENU_WRITE_END
|
||||
;Store installation folder
|
||||
WriteRegStr HKCU "Software\OpenERP Server" "" $INSTDIR
|
||||
|
||||
nsExec::Exec '"$INSTDIR\\openerp-server.exe" --stop-after-init --logfile "$INSTDIR\\openerp-server.log" -s'
|
||||
nsExec::Exec '"$INSTDIR\\service\\OpenERPServerService.exe" -auto -install'
|
||||
;Create uninstaller
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenERP Server" "DisplayName" "OpenERP Server 5.0"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenERP Server" "UninstallString" "$INSTDIR\Uninstall.exe"
|
||||
WriteUninstaller "$INSTDIR\Uninstall.exe"
|
||||
|
||||
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
|
||||
;Create shortcuts
|
||||
CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\OpenERP Server.lnk" "$INSTDIR\openerp-server.exe"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Start service.lnk" "$INSTDIR\service\start.bat"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Stop service.lnk" "$INSTDIR\service\stop.bat"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Edit config.lnk" "notepad.exe" "$INSTDIR\openerp-server.conf"
|
||||
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\View log.lnk" "notepad.exe" "$INSTDIR\openerp-server.log"
|
||||
!insertmacro MUI_STARTMENU_WRITE_END
|
||||
|
||||
nsExec::Exec '"$INSTDIR\\openerp-server.exe" --stop-after-init --logfile "$INSTDIR\\openerp-server.log" -s'
|
||||
nsExec::Exec '"$INSTDIR\\service\\OpenERPServerService.exe" -auto -install'
|
||||
|
||||
SectionEnd
|
||||
|
||||
;Descriptions
|
||||
|
||||
;Language strings
|
||||
LangString DESC_SecOpenERPServer ${LANG_ENGLISH} "OpenERP Server."
|
||||
;Language strings
|
||||
LangString DESC_SecOpenERPServer ${LANG_ENGLISH} "OpenERP Server."
|
||||
|
||||
;Assign language strings to sections
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
;Assign language strings to sections
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SecOpenERPServer} $(DESC_SecOpenERPServer)
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
;--------------------------------
|
||||
;Uninstaller Section
|
||||
|
||||
Section "Uninstall"
|
||||
|
||||
nsExec::Exec "net stop openerp-service"
|
||||
sleep 2
|
||||
nsExec::Exec '"$INSTDIR\\service\\OpenERPServerService.exe" -remove'
|
||||
sleep 2
|
||||
nsExec::Exec "net stop openerp-service"
|
||||
sleep 2
|
||||
nsExec::Exec '"$INSTDIR\\service\\OpenERPServerService.exe" -remove'
|
||||
sleep 2
|
||||
|
||||
;ADD YOUR OWN FILES HERE...
|
||||
Delete "$INSTDIR\Uninstall.exe"
|
||||
Push "$INSTDIR\addons"
|
||||
Push ""
|
||||
Call un.RmFilesButOne
|
||||
Push "$INSTDIR\i18n"
|
||||
Push ""
|
||||
Call un.RmFilesButOne
|
||||
Delete "$INSTDIR\service\*"
|
||||
Push "$INSTDIR\doc"
|
||||
Push ""
|
||||
Call un.RmFilesButOne
|
||||
Delete "$INSTDIR\*"
|
||||
Delete "$INSTDIR\Uninstall.exe"
|
||||
RMDIR /r "$INSTDIR"
|
||||
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
|
||||
|
||||
Push "$INSTDIR\addons"
|
||||
Push ""
|
||||
Call un.RmDirsButOne
|
||||
Push "$INSTDIR\i18n"
|
||||
Push ""
|
||||
RMDir "$INSTDIR\i18n"
|
||||
Call un.RmDirsButOne
|
||||
Push "$INSTDIR\doc"
|
||||
Push ""
|
||||
Call un.RmDirsButOne
|
||||
RMDir "$INSTDIR\doc"
|
||||
RMDir "$INSTDIR\addons"
|
||||
RMDir "$INSTDIR\service"
|
||||
RMDir "$INSTDIR"
|
||||
|
||||
!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
|
||||
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\OpenERP Server.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\Start service.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\Stop service.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\Edit config.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\View log.lnk"
|
||||
|
||||
;Delete empty start menu parent diretories
|
||||
StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\OpenERP Server.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\Start service.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\Stop service.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\Edit config.lnk"
|
||||
Delete "$SMPROGRAMS\$MUI_TEMP\View log.lnk"
|
||||
|
||||
;Delete empty start menu parent diretories
|
||||
StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
|
||||
|
||||
startMenuDeleteLoop:
|
||||
ClearErrors
|
||||
RMDir $MUI_TEMP
|
||||
GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
|
||||
|
||||
IfErrors startMenuDeleteLoopDone
|
||||
|
||||
StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop
|
||||
startMenuDeleteLoopDone:
|
||||
startMenuDeleteLoop:
|
||||
ClearErrors
|
||||
RMDir $MUI_TEMP
|
||||
GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
|
||||
|
||||
DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenERP Server"
|
||||
DeleteRegKey /ifempty HKCU "Software\OpenERP Server"
|
||||
IfErrors startMenuDeleteLoopDone
|
||||
|
||||
StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop
|
||||
|
||||
startMenuDeleteLoopDone:
|
||||
|
||||
DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenERP Server"
|
||||
DeleteRegKey /ifempty HKCU "Software\OpenERP Server"
|
||||
|
||||
SectionEnd
|
||||
|
||||
Function LaunchLink
|
||||
nsExec::Exec "net start openerp-service"
|
||||
nsExec::Exec "net start openerp-service"
|
||||
FunctionEnd
|
||||
|
||||
Function un.RmDirsButOne
|
||||
Exch $R0 ; exclude dir
|
||||
Exch
|
||||
Exch $R1 ; route dir
|
||||
Push $R2
|
||||
Push $R3
|
||||
|
||||
FindFirst $R3 $R2 "$R1\*.*"
|
||||
IfErrors Exit
|
||||
|
||||
Top:
|
||||
StrCmp $R2 "." Next
|
||||
StrCmp $R2 ".." Next
|
||||
StrCmp $R2 $R0 Next
|
||||
IfFileExists "$R1\$R2\*.*" 0 Next
|
||||
RmDir /r "$R1\$R2"
|
||||
|
||||
#Goto Exit ;uncomment this to stop it being recursive
|
||||
|
||||
Next:
|
||||
ClearErrors
|
||||
FindNext $R3 $R2
|
||||
IfErrors Exit
|
||||
Goto Top
|
||||
|
||||
Exit:
|
||||
FindClose $R3
|
||||
|
||||
Pop $R3
|
||||
Pop $R2
|
||||
Pop $R1
|
||||
Pop $R0
|
||||
FunctionEnd
|
||||
|
||||
Function un.RmFilesButOne
|
||||
Exch $R0 ; exclude file
|
||||
Exch
|
||||
Exch $R1 ; route dir
|
||||
Push $R2
|
||||
Push $R3
|
||||
|
||||
FindFirst $R3 $R2 "$R1\*.*"
|
||||
IfErrors Exit
|
||||
|
||||
Top:
|
||||
StrCmp $R2 "." Next
|
||||
StrCmp $R2 ".." Next
|
||||
StrCmp $R2 $R0 Next
|
||||
IfFileExists "$R1\$R2\*.*" Next
|
||||
Delete "$R1\$R2"
|
||||
|
||||
#Goto Exit ;uncomment this to stop it being recursive
|
||||
|
||||
Next:
|
||||
ClearErrors
|
||||
FindNext $R3 $R2
|
||||
IfErrors Exit
|
||||
Goto Top
|
||||
|
||||
Exit:
|
||||
FindClose $R3
|
||||
|
||||
Pop $R3
|
||||
Pop $R2
|
||||
Pop $R1
|
||||
Pop $R0
|
||||
FunctionEnd
|
||||
|
|
Loading…
Reference in New Issue