update po files
[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
5 ;--------------------------------
6 ;Include Modern UI
7
8   !include "MUI.nsh"
9
10 ;--------------------------------
11 ;General
12
13   ;Name and file
14   Name "OpenERP Server"
15   OutFile "openerp-server-setup.exe"
16
17   ;Default installation folder
18   InstallDir "$PROGRAMFILES\OpenERP Server"
19   
20   ;Get installation folder from registry if available
21   InstallDirRegKey HKCU "Software\OpenERP Server" ""
22
23   ;Vista redirects $SMPROGRAMS to all users without this
24   RequestExecutionLevel admin
25
26 ;--------------------------------
27 ;Variables
28
29   Var MUI_TEMP
30   Var STARTMENU_FOLDER
31
32 ;--------------------------------
33 ;Interface Settings
34
35   !define MUI_ABORTWARNING
36
37 ;--------------------------------
38 ;Pages
39
40   !define MUI_ICON ".\pixmaps\openerp.ico"
41   !define MUI_UNICON ".\pixmaps\openerp.ico"
42   !define MUI_WELCOMEFINISHPAGE_BITMAP ".\pixmaps\openerp-intro.bmp"
43   !define MUI_HEADERIMAGE
44   !define MUI_HEADERIMAGE_BITMAP ".\pixmaps\openerp-header.bmp"
45
46   !insertmacro MUI_PAGE_WELCOME
47   !insertmacro MUI_PAGE_LICENSE "doc\\License.rtf"
48  # !insertmacro MUI_PAGE_COMPONENTS
49   !insertmacro MUI_PAGE_DIRECTORY
50   
51   ;Start Menu Folder Page Configuration
52   !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" 
53   !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\OpenERP Server"
54   !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "OpenERP Server"
55   
56   !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
57   
58   !insertmacro MUI_PAGE_INSTFILES
59
60   !define MUI_FINISHPAGE_NOAUTOCLOSE
61   !define MUI_FINISHPAGE_RUN
62   !define MUI_FINISHPAGE_RUN_CHECKED
63   !define MUI_FINISHPAGE_RUN_TEXT "Start OpenERP Server"
64   !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink"
65   !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
66   !define MUI_FINISHPAGE_SHOWREADME $INSTDIR\README.txt
67   !insertmacro MUI_PAGE_FINISH
68
69   
70   !insertmacro MUI_UNPAGE_WELCOME
71   !insertmacro MUI_UNPAGE_CONFIRM
72   !insertmacro MUI_UNPAGE_INSTFILES
73
74 ;--------------------------------
75 ;Languages
76  
77   !insertmacro MUI_LANGUAGE "English"
78
79 ;--------------------------------
80 ;Installer Sections
81
82 Section "OpenERP Server" SecOpenERPServer
83
84   nsExec::Exec "net stop openerp-service"
85   sleep 2
86
87   SetOutPath "$INSTDIR"
88   
89   ;ADD YOUR OWN FILES HERE...
90   File /r "dist\\*"
91
92   SetOutPath "$INSTDIR\service"
93   File /r "win32\\dist\\*"
94   File "win32\\start.bat"
95   File "win32\\stop.bat"
96
97   ;Store installation folder
98   WriteRegStr HKCU "Software\OpenERP Server" "" $INSTDIR
99   
100   ;Create uninstaller
101   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenERP Server" "DisplayName" "OpenERP Server (remove only)"
102   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenERP Server" "UninstallString" "$INSTDIR\Uninstall.exe"
103   WriteUninstaller "$INSTDIR\Uninstall.exe"
104   
105
106   !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
107     
108     ;Create shortcuts
109     CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
110     CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\OpenERP Server.lnk" "$INSTDIR\openerp-server.exe"
111     CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Start service.lnk" "$INSTDIR\service\start.bat"
112     CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Stop service.lnk" "$INSTDIR\service\stop.bat"
113     CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Edit config.lnk" "notepad.exe" "$INSTDIR\openerp-server.conf"
114     CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\View log.lnk" "notepad.exe" "$INSTDIR\openerp-server.log"
115   
116   !insertmacro MUI_STARTMENU_WRITE_END
117
118   nsExec::Exec '"$INSTDIR\\openerp-server.exe" --stop-after-init --logfile "$INSTDIR\\openerp-server.log" -s'
119   nsExec::Exec '"$INSTDIR\\service\\OpenERPServerService.exe" -auto -install'
120
121 SectionEnd
122
123 ;Descriptions
124
125   ;Language strings
126   LangString DESC_SecOpenERPServer ${LANG_ENGLISH} "OpenERP Server."
127
128   ;Assign language strings to sections
129   !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
130     !insertmacro MUI_DESCRIPTION_TEXT ${SecOpenERPServer} $(DESC_SecOpenERPServer)
131   !insertmacro MUI_FUNCTION_DESCRIPTION_END
132  
133 ;--------------------------------
134 ;Uninstaller Section
135
136 Section "Uninstall"
137
138   nsExec::Exec "net stop openerp-service"
139   sleep 2
140   nsExec::Exec '"$INSTDIR\\service\\OpenERPServerService.exe" -remove'
141   sleep 2
142
143   ;ADD YOUR OWN FILES HERE...
144   Delete "$INSTDIR\Uninstall.exe"
145   Push "$INSTDIR\addons"
146   Push ""
147   Call un.RmFilesButOne
148   Push "$INSTDIR\i18n"
149   Push ""
150   Call un.RmFilesButOne
151   Delete "$INSTDIR\service\*"
152   Push "$INSTDIR\doc"
153   Push ""
154   Call un.RmFilesButOne
155   Delete "$INSTDIR\*"
156   Delete "$INSTDIR\Uninstall.exe"
157
158   Push "$INSTDIR\addons"
159   Push ""
160   Call un.RmDirsButOne
161   Push "$INSTDIR\i18n"
162   Push ""
163   RMDir "$INSTDIR\i18n"
164   Call un.RmDirsButOne
165   Push "$INSTDIR\doc"
166   Push ""
167   Call un.RmDirsButOne
168   RMDir "$INSTDIR\doc"
169   RMDir "$INSTDIR\addons"
170   RMDir "$INSTDIR\service"
171   RMDir "$INSTDIR"
172   
173   !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
174     
175   Delete "$SMPROGRAMS\$MUI_TEMP\OpenERP Server.lnk"
176   Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
177   Delete "$SMPROGRAMS\$MUI_TEMP\Start service.lnk"
178   Delete "$SMPROGRAMS\$MUI_TEMP\Stop service.lnk"
179   Delete "$SMPROGRAMS\$MUI_TEMP\Edit config.lnk"
180   Delete "$SMPROGRAMS\$MUI_TEMP\View log.lnk"
181   
182   ;Delete empty start menu parent diretories
183   StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
184  
185   startMenuDeleteLoop:
186         ClearErrors
187     RMDir $MUI_TEMP
188     GetFullPathName $MUI_TEMP "$MUI_TEMP\.."
189     
190     IfErrors startMenuDeleteLoopDone
191   
192     StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop
193   startMenuDeleteLoopDone:
194
195   DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenERP Server"
196   DeleteRegKey /ifempty HKCU "Software\OpenERP Server"
197
198 SectionEnd
199
200 Function LaunchLink
201   nsExec::Exec "net start openerp-service"
202 FunctionEnd
203
204 Function un.RmDirsButOne
205  Exch $R0 ; exclude dir
206  Exch
207  Exch $R1 ; route dir
208  Push $R2
209  Push $R3
210  
211   FindFirst $R3 $R2 "$R1\*.*"
212   IfErrors Exit
213  
214   Top:
215    StrCmp $R2 "." Next
216    StrCmp $R2 ".." Next
217    StrCmp $R2 $R0 Next
218    IfFileExists "$R1\$R2\*.*" 0 Next
219     RmDir /r "$R1\$R2"
220  
221    #Goto Exit ;uncomment this to stop it being recursive
222  
223    Next:
224     ClearErrors
225     FindNext $R3 $R2
226     IfErrors Exit
227    Goto Top
228  
229   Exit:
230   FindClose $R3
231  
232  Pop $R3
233  Pop $R2
234  Pop $R1
235  Pop $R0
236 FunctionEnd
237
238 Function un.RmFilesButOne
239  Exch $R0 ; exclude file
240  Exch
241  Exch $R1 ; route dir
242  Push $R2
243  Push $R3
244  
245   FindFirst $R3 $R2 "$R1\*.*"
246   IfErrors Exit
247  
248   Top:
249    StrCmp $R2 "." Next
250    StrCmp $R2 ".." Next
251    StrCmp $R2 $R0 Next
252    IfFileExists "$R1\$R2\*.*" Next
253     Delete "$R1\$R2"
254  
255    #Goto Exit ;uncomment this to stop it being recursive
256  
257    Next:
258     ClearErrors
259     FindNext $R3 $R2
260     IfErrors Exit
261    Goto Top
262  
263   Exit:
264   FindClose $R3
265  
266  Pop $R3
267  Pop $R2
268  Pop $R1
269  Pop $R0
270 FunctionEnd