merge the formfield patch from ooo-build
[ooovba.git] / setup_native / source / win32 / nsis / downloadtemplate.nsi
blobd755dfb5848a36f036d9021dc1aea26d62e87130
1 !define PRODUCT_NAME "PRODUCTNAMEPLACEHOLDER"
2 !define PRODUCT_VERSION "PRODUCTVERSIONPLACEHOLDER"
3 !define PRODUCT_PUBLISHER "PUBLISHERPLACEHOLDER"
4 !define PRODUCT_WEB_SITE "WEBSITEPLACEHOLDER"
6 ; SetCompressor lzma
7 SetCompressor zlib
9 ; MUI 1.67 compatible ------
10 !include "MUI.nsh"
12 Function .onInit
14 Call GetParameters
15 Pop $1
16 ;MessageBox MB_OK "$1"
18 Push $1
19 Push "/HELP="
20 Call GetOptions
21 Pop $2
22 ;MessageBox MB_OK "HELP: $2"
24 StrCmp $2 "ON" showhelp nohelp
25 showhelp:
26 MessageBox MB_OK|MB_ICONINFORMATION \
27 "DOWNLOADNAMEPLACEHOLDER options: $\n $\n \
28 /S : Silent installation $\n \
29 /D=<path> : NSIS installation directory (must be the last option!) $\n \
30 /EXTRACTONLY=ON : NSIS only extracts the PRODUCTNAMEPLACEHOLDER PRODUCTVERSIONPLACEHOLDER installation set $\n \
31 /INSTALLLOCATION=<path> : PRODUCTNAMEPLACEHOLDER PRODUCTVERSIONPLACEHOLDER installation directory $\n \
32 /POSTREMOVE=ON : Removes the unpacked installation set after PRODUCTNAMEPLACEHOLDER PRODUCTVERSIONPLACEHOLDER installation $\n \
33 /INSTALLJAVA=ON : Installs JRE located in sub directory java, if exists $\n \
34 /GUILEVEL=<guilevel> : Setting Windows Installer GUI level: qr, qb, qn, qf, ... $\n \
35 /PARAM1=$\"key=value$\" : Flexible parameter 1. Example: /PARAM1=$\"INSTALLLEVEL=70$\" $\n \
36 /PARAM2=$\"key=value$\" : Flexible parameter 2. $\n \
37 /PARAM3=$\"key=value$\" : Flexible parameter 3. $\n \
38 /HELP=ON : Shows this help $\n"
39 Quit
40 GoTo onInitDone
42 nohelp:
44 StrCmp $INSTDIR "" pathnotset pathset
45 pathnotset:
47 IfSilent onInitSilent onInitNoSilent
49 onInitSilent:
50 StrCpy $INSTDIR "$TEMP\PRODUCTPATHPLACEHOLDER Installation Files"
51 GoTo onInitDone
53 onInitNoSilent:
54 StrCpy $INSTDIR "$DESKTOP\PRODUCTPATHPLACEHOLDER Installation Files"
55 GoTo onInitDone
57 onInitDone:
58 pathset:
60 FunctionEnd
62 Function GetParameters
64 Push $R0
65 Push $R1
66 Push $R2
67 Push $R3
69 StrCpy $R2 1
71 StrLen $R3 $CMDLINE
73 ;Check for quote or space
74 StrCpy $R0 $CMDLINE $R2
76 StrCmp $R0 '"' 0 +3
77 StrCpy $R1 '"'
78 Goto loop
79 StrCpy $R1 " "
81 loop:
82 IntOp $R2 $R2 + 1
83 StrCpy $R0 $CMDLINE 1 $R2
84 StrCmp $R0 $R1 get
85 StrCmp $R2 $R3 get
86 Goto loop
88 get:
89 IntOp $R2 $R2 + 1
90 StrCpy $R0 $CMDLINE 1 $R2
91 StrCmp $R0 " " get
92 StrCpy $R0 $CMDLINE "" $R2
94 Pop $R3
95 Pop $R2
96 Pop $R1
97 Exch $R0
99 FunctionEnd
101 Function GetOptions
103 Exch $1
104 Exch
105 Exch $0
106 Exch
107 Push $2
108 Push $3
109 Push $4
110 Push $5
111 Push $6
112 Push $7
114 StrCpy $2 $1 '' 1
115 StrCpy $1 $1 1
116 StrLen $3 $2
117 StrCpy $7 0
119 begin:
120 StrCpy $4 -1
121 StrCpy $6 ''
123 quote:
124 IntOp $4 $4 + 1
125 StrCpy $5 $0 1 $4
126 StrCmp $5$7 '0' notfound
127 StrCmp $5 '' trimright
128 StrCmp $5 '"' 0 +7
129 StrCmp $6 '' 0 +3
130 StrCpy $6 '"'
131 goto quote
132 StrCmp $6 '"' 0 +3
133 StrCpy $6 ''
134 goto quote
135 StrCmp $5 `'` 0 +7
136 StrCmp $6 `` 0 +3
137 StrCpy $6 `'`
138 goto quote
139 StrCmp $6 `'` 0 +3
140 StrCpy $6 ``
141 goto quote
142 StrCmp $5 '`' 0 +7
143 StrCmp $6 '' 0 +3
144 StrCpy $6 '`'
145 goto quote
146 StrCmp $6 '`' 0 +3
147 StrCpy $6 ''
148 goto quote
149 StrCmp $6 '"' quote
150 StrCmp $6 `'` quote
151 StrCmp $6 '`' quote
152 StrCmp $5 $1 0 quote
153 StrCmp $7 0 trimleft trimright
155 trimleft:
156 IntOp $4 $4 + 1
157 StrCpy $5 $0 $3 $4
158 StrCmp $5 '' notfound
159 StrCmp $5 $2 0 quote
160 IntOp $4 $4 + $3
161 StrCpy $0 $0 '' $4
162 StrCpy $4 $0 1
163 StrCmp $4 ' ' 0 +3
164 StrCpy $0 $0 '' 1
165 goto -3
166 StrCpy $7 1
167 goto begin
169 trimright:
170 StrCpy $0 $0 $4
171 StrCpy $4 $0 1 -1
172 StrCmp $4 ' ' 0 +3
173 StrCpy $0 $0 -1
174 goto -3
175 StrCpy $3 $0 1
176 StrCpy $4 $0 1 -1
177 StrCmp $3 $4 0 end
178 StrCmp $3 '"' +3
179 StrCmp $3 `'` +2
180 StrCmp $3 '`' 0 end
181 StrCpy $0 $0 -1 1
182 goto end
184 notfound:
185 StrCpy $0 ''
187 end:
188 Pop $7
189 Pop $6
190 Pop $5
191 Pop $4
192 Pop $3
193 Pop $2
194 Pop $1
195 Exch $0
197 FunctionEnd
199 ; MUI Settings
200 !define MUI_HEADERIMAGE
201 !define MUI_HEADERIMAGE_RIGHT
202 !define MUI_HEADERIMAGE_BITMAP_NOSTRETCH
203 !define MUI_HEADERIMAGE_BITMAP BANNERBMPPLACEHOLDER
204 !define MUI_WELCOMEFINISHPAGE_BITMAP WELCOMEBMPPLACEHOLDER
205 !define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
206 !define MUI_WELCOMEPAGE_TITLE_3LINES
207 !define MUI_ABORTWARNING
208 !define MUI_ICON "SETUPICOPLACEHOLDER"
210 ; Welcome page
211 !insertmacro MUI_PAGE_WELCOME
212 !insertmacro MUI_PAGE_DIRECTORY
213 !insertmacro MUI_PAGE_INSTFILES
215 #231#!macro MUI_LANGUAGE_PACK LANGUAGE
216 #231# !verbose push
217 #231# !verbose ${MUI_VERBOSE}
218 #231# !insertmacro MUI_INSERT
219 #231# LoadLanguageFile "NSISPATHPLACEHOLDER\${LANGUAGE}_pack.nlf"
220 #231# ;Set default language file for MUI and backup user setting
221 #231# !ifdef LANGFILE_DEFAULT
222 #231# !define MUI_LANGFILE_DEFAULT_TEMP "${LANGFILE_DEFAULT}"
223 #231# !undef LANGFILE_DEFAULT
224 #231# !endif
225 #231# !define LANGFILE_DEFAULT "${NSISDIR}\Contrib\Language files\English.nsh"
226 #231# ;Include language file
227 #231# !insertmacro LANGFILE_INCLUDE "NSISPATHPLACEHOLDER\${LANGUAGE}_pack.nsh"
228 #231# ;Restore user setting for default language file
229 #231# !undef LANGFILE_DEFAULT
230 #231# !ifdef MUI_LANGFILE_DEFAULT_TEMP
231 #231# !define LANGFILE_DEFAULT "${MUI_LANGFILE_DEFAULT}"
232 #231# !endif
233 #231# ;Add language to list of languages for selection dialog
234 #231# !ifndef MUI_LANGDLL_LANGUAGES
235 #231# !define MUI_LANGDLL_LANGUAGES "'${LANGFILE_${LANGUAGE}_NAME}' '${LANG_${LANGUAGE}}' "
236 #231# !define MUI_LANGDLL_LANGUAGES_CP "'${LANGFILE_${LANGUAGE}_NAME}' '${LANG_${LANGUAGE}}' '${LANG_${LANGUAGE}_CP}' "
237 #231# !else
238 #231# !ifdef MUI_LANGDLL_LANGUAGES_TEMP
239 #231# !undef MUI_LANGDLL_LANGUAGES_TEMP
240 #231# !endif
241 #231# !define MUI_LANGDLL_LANGUAGES_TEMP "${MUI_LANGDLL_LANGUAGES}"
242 #231# !undef MUI_LANGDLL_LANGUAGES
243 #231# !ifdef MUI_LANGDLL_LANGUAGES_CP_TEMP
244 #231# !undef MUI_LANGDLL_LANGUAGES_CP_TEMP
245 #231# !endif
246 #231# !define MUI_LANGDLL_LANGUAGES_CP_TEMP "${MUI_LANGDLL_LANGUAGES_CP}"
247 #231# !undef MUI_LANGDLL_LANGUAGES_CP
248 #231# !define MUI_LANGDLL_LANGUAGES "'${LANGFILE_${LANGUAGE}_NAME}' '${LANG_${LANGUAGE}}' ${MUI_LANGDLL_LANGUAGES_TEMP}"
249 #231# !define MUI_LANGDLL_LANGUAGES_CP "'${LANGFILE_${LANGUAGE}_NAME}' '${LANG_${LANGUAGE}}' '${LANG_${LANGUAGE}_CP}' ${MUI_LANGDLL_LANGUAGES_CP_TEMP}"
250 #231# !endif
251 #231# !verbose pop
252 #231#!macroend
254 #204#!macro MUI_LANGUAGE_PACK LANGUAGE
255 #204# !verbose push
256 #204# !verbose ${MUI_VERBOSE}
257 #204# !include "NSISPATHPLACEHOLDER\${LANGUAGE}_pack.nsh"
258 #204# !verbose pop
259 #204#!macroend
261 #204#!macro MUI_LANGUAGEFILE_PACK_BEGIN LANGUAGE
262 #204# !ifndef MUI_INSERT
263 #204# !define MUI_INSERT
264 #204# !insertmacro MUI_INSERT
265 #204# !endif
266 #204# LoadLanguageFile "NSISPATHPLACEHOLDER\${LANGUAGE}_pack.nlf"
267 #204#!macroend
269 ; Language files
270 ALLLANGUAGESPLACEHOLDER
272 ; Reserve files
273 ;!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
275 ; MUI end ------
277 Name "PRODUCTNAMEPLACEHOLDER PRODUCTVERSIONPLACEHOLDER"
278 OutFile "OUTPUTDIRPLACEHOLDER\DOWNLOADNAMEPLACEHOLDER"
279 ; InstallDir "$DESKTOP\PRODUCTNAMEPLACEHOLDER PRODUCTVERSIONPLACEHOLDER Installation Files"
280 ; ShowInstDetails show
282 Section "MainSection" SEC01
283 ALLFILESPLACEHOLDER
284 SectionEnd
286 Section -Post
288 StrCpy $R9 "false"
290 Call GetParameters
291 Pop $1
293 Push $1
294 Push "/EXTRACTONLY="
295 Call GetOptions
296 Pop $2
297 ;MessageBox MB_OK "EXTRACTONLY: $2"
299 StrCmp $2 "ON" onPostDone callsetup
300 callsetup:
302 Push $1
303 Push "/INSTALLLOCATION="
304 Call GetOptions
305 Pop $2
306 ;MessageBox MB_OK "INSTALLLOCATION: $2"
308 StrCmp $2 "" installnotset installset
309 installset:
310 StrCpy $3 'INSTALLLOCATION="$2"'
311 installnotset:
313 Push $1
314 Push "/INSTALLJAVA="
315 Call GetOptions
316 Pop $2
317 ;MessageBox MB_OK "INSTALLJAVA: $2"
319 StrCmp $2 "ON" setinstalljava setdontinstalljava
320 setinstalljava:
321 StrCpy $R9 "true"
322 setdontinstalljava:
324 Push $1
325 Push "/GUILEVEL="
326 Call GetOptions
327 Pop $2
329 StrCmp $2 "" dontsetguilevel setguilevel
330 setguilevel:
331 StrCpy $7 "/"
332 StrCpy $7 $7$2
333 GoTo afterguilevel
334 dontsetguilevel:
335 StrCpy $7 "/qr"
336 afterguilevel:
338 ;MessageBox MB_OK "GUILEVEL: $7"
340 Push $1
341 Push "/PARAM1="
342 Call GetOptions
343 Pop $2
344 ;MessageBox MB_OK "PARAM1: $2"
346 StrCmp $2 "" param1notset param1set
347 param1set:
348 StrCpy $4 "$2"
349 param1notset:
352 Push $1
353 Push "/PARAM2="
354 Call GetOptions
355 Pop $2
356 ;MessageBox MB_OK "PARAM2: $2"
358 StrCmp $2 "" param2notset param2set
359 param2set:
360 StrCpy $5 "$2"
361 param2notset:
364 Push $1
365 Push "/PARAM3="
366 Call GetOptions
367 Pop $2
368 ;MessageBox MB_OK "PARAM3: $2"
370 StrCmp $2 "" param3notset param3set
371 param3set:
372 StrCpy $6 "$2"
373 param3notset:
375 IfSilent onPostSilent onPostNoSilent
377 onPostSilent:
378 Push $1
379 Push "/POSTREMOVE="
380 Call GetOptions
381 Pop $2
382 ;MessageBox MB_OK "POSTREMOVE: $2"
384 StrCmp $2 "ON" postremovesilent nopostremovesilent
385 nopostremovesilent:
386 StrCmp $R9 "true" installjava1 dontinstalljava1
387 installjava1:
388 ExecWait '$INSTDIR\java\WINDOWSJAVAFILENAMEPLACEHOLDER /s /v"/qn REBOOT=Suppress"'
389 dontinstalljava1:
390 ExecWait "$INSTDIR\setup.exe -lang $LANGUAGE $3 $4 $5 $6 $7 -ignore_running" $0
391 SetErrorLevel $0
392 Quit
393 GoTo onPostDone
394 postremovesilent:
395 StrCmp $R9 "true" installjava2 dontinstalljava2
396 installjava2:
397 ExecWait '$INSTDIR\java\WINDOWSJAVAFILENAMEPLACEHOLDER /s /v"/qn REBOOT=Suppress"'
398 dontinstalljava2:
399 ExecWait "$INSTDIR\setup.exe -lang $LANGUAGE $3 $4 $5 $6 $7 -ignore_running" $0
400 RMDir /r $INSTDIR
401 RMDir $INSTDIR
402 SetErrorLevel $0
403 Quit
404 GoTo onPostDone
406 onPostNoSilent:
407 Push $1
408 Push "/POSTREMOVE="
409 Call GetOptions
410 Pop $2
411 ;MessageBox MB_OK "POSTREMOVE: $2"
413 StrCmp $2 "ON" postremove nopostremove
414 nopostremove:
415 Exec "$INSTDIR\setup.exe -lang $LANGUAGE $3 $4 $5 $6"
416 Quit
417 GoTo onPostDone
418 postremove:
419 StrCmp $R9 "true" installjava3 dontinstalljava3
420 installjava3:
421 ExecWait '$INSTDIR\java\WINDOWSJAVAFILENAMEPLACEHOLDER /s /v"/qr REBOOT=Suppress"'
422 dontinstalljava3:
423 ExecWait "$INSTDIR\setup.exe -lang $LANGUAGE $3 $4 $5 $6" $0
424 RMDir /r $INSTDIR
425 RMDir $INSTDIR
426 SetErrorLevel $0
427 Quit
428 GoTo onPostDone
430 onPostDone:
432 SectionEnd