improve_module
[odoo/odoo.git] / openerp-server-installer.nsi
1 ; NSIS Modern User Interface
2 ; Start Menu Folder Selection Example Script
3 ; Written by Joost Verburg
4 ; Modified By Stephane Wirtel - Tiny SPRL
5
6 ;--------------------------------
7 ;Include Modern UI
8
9 !include "MUI.nsh"
10
11 ;--------------------------------
12 ;General
13
14 ;Name and file
15 Name "OpenERP Server"
16 OutFile "openerp-server-setup.exe"
17
18 ;Default installation folder
19 InstallDir "$PROGRAMFILES\OpenERP Server"
20
21 ;Get installation folder from registry if available
22 InstallDirRegKey HKCU "Software\OpenERP Server" ""
23
24 ;Vista redirects $SMPROGRAMS to all users without this
25 RequestExecutionLevel admin
26
27 ;--------------------------------
28 ;Variables
29
30 Var MUI_TEMP
31 Var STARTMENU_FOLDER
32
33 ;--------------------------------
34 ;Interface Settings
35
36 !define MUI_ABORTWARNING
37
38 ;--------------------------------
39 ;Pages
40
41 !define MUI_ICON ".\pixmaps\openerp.ico"
42 !define MUI_UNICON ".\pixmaps\openerp.ico"
43 !define MUI_WELCOMEFINISHPAGE_BITMAP ".\pixmaps\openerp-intro.bmp"
44 !define MUI_HEADERIMAGE
45 !define MUI_HEADERIMAGE_BITMAP ".\pixmaps\openerp-header.bmp"
46
47 !insertmacro MUI_PAGE_WELCOME
48 !insertmacro MUI_PAGE_LICENSE "doc\\License.rtf"
49 # !insertmacro MUI_PAGE_COMPONENTS
50 !insertmacro MUI_PAGE_DIRECTORY
51
52 ;Start Menu Folder Page Configuration
53 !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" 
54 !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenERP Server"
55 !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "OpenERP Server"
56
57 !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
58
59 !insertmacro MUI_PAGE_INSTFILES
60
61 !define MUI_FINISHPAGE_NOAUTOCLOSE
62 !define MUI_FINISHPAGE_RUN
63 !define MUI_FINISHPAGE_RUN_CHECKED
64 !define MUI_FINISHPAGE_RUN_TEXT "Start OpenERP Server"
65 !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink"
66 !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
67 !define MUI_FINISHPAGE_SHOWREADME $INSTDIR\README.txt
68 !insertmacro MUI_PAGE_FINISH
69
70
71 !insertmacro MUI_UNPAGE_WELCOME
72 !insertmacro MUI_UNPAGE_CONFIRM
73 !insertmacro MUI_UNPAGE_INSTFILES
74
75 ;--------------------------------
76 ;Languages
77
78 !insertmacro MUI_LANGUAGE "English"
79
80 ;--------------------------------
81 ;Installer Sections
82
83 Section "OpenERP Server" SecOpenERPServer
84
85     nsExec::Exec "net stop openerp-service"
86     sleep 2
87
88     SetOutPath "$INSTDIR"
89
90     ;ADD YOUR OWN FILES HERE...
91     File /r "dist\\*"
92
93     SetOutPath "$INSTDIR\service"
94     File /r "win32\\dist\\*"
95     File "win32\\start.bat"
96     File "win32\\stop.bat"
97
98     ;Store installation folder
99     WriteRegStr HKCU "Software\OpenERP Server" "" $INSTDIR
100
101     ;Create uninstaller
102     WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenERP Server" "DisplayName" "OpenERP Server 5.0"
103     WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenERP Server" "UninstallString" "$INSTDIR\Uninstall.exe"
104     WriteUninstaller "$INSTDIR\Uninstall.exe"
105
106     !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
107         ;Create shortcuts
108         CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
109         CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\OpenERP Server.lnk" "$INSTDIR\openerp-server.exe"
110         CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Start service.lnk" "$INSTDIR\service\start.bat"
111         CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Stop service.lnk" "$INSTDIR\service\stop.bat"
112         CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Edit config.lnk" "notepad.exe" "$INSTDIR\openerp-server.conf"
113         CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\View log.lnk" "notepad.exe" "$INSTDIR\openerp-server.log"
114     !insertmacro MUI_STARTMENU_WRITE_END
115
116     nsExec::Exec '"$INSTDIR\\openerp-server.exe" --stop-after-init --logfile "$INSTDIR\\openerp-server.log" -s'
117     nsExec::Exec '"$INSTDIR\\service\\OpenERPServerService.exe" -auto -install'
118
119 SectionEnd
120
121 ;Descriptions
122
123 ;Language strings
124 LangString DESC_SecOpenERPServer ${LANG_ENGLISH} "OpenERP Server."
125
126 ;Assign language strings to sections
127 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
128     !insertmacro MUI_DESCRIPTION_TEXT ${SecOpenERPServer} $(DESC_SecOpenERPServer)
129 !insertmacro MUI_FUNCTION_DESCRIPTION_END
130  
131 ;--------------------------------
132 ;Uninstaller Section
133
134 Section "Uninstall"
135
136     nsExec::Exec "net stop openerp-service"
137     sleep 2
138     nsExec::Exec '"$INSTDIR\\service\\OpenERPServerService.exe" -remove'
139     sleep 2
140
141     RMDIR /r "$INSTDIR" 
142     !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
143
144     Delete "$SMPROGRAMS\$MUI_TEMP\OpenERP Server.lnk"
145     Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
146     Delete "$SMPROGRAMS\$MUI_TEMP\Start service.lnk"
147     Delete "$SMPROGRAMS\$MUI_TEMP\Stop service.lnk"
148     Delete "$SMPROGRAMS\$MUI_TEMP\Edit config.lnk"
149     Delete "$SMPROGRAMS\$MUI_TEMP\View log.lnk"
150
151     ;Delete empty start menu parent diretories
152     StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
153  
154     startMenuDeleteLoop:
155         ClearErrors
156         RMDir $MUI_TEMP
157         GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
158
159         IfErrors startMenuDeleteLoopDone
160
161         StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop
162
163     startMenuDeleteLoopDone:
164
165         DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenERP Server"
166         DeleteRegKey /ifempty HKCU "Software\OpenERP Server"
167
168 SectionEnd
169
170 Function LaunchLink
171     nsExec::Exec "net start openerp-service"
172 FunctionEnd
173