/[cvs]/joko/ToolBox/Windows/w2hfax-installer/w2hfax.nsi
ViewVC logotype

Diff of /joko/ToolBox/Windows/w2hfax-installer/w2hfax.nsi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by joko, Thu Mar 17 15:10:11 2005 UTC revision 1.4 by joko, Thu Mar 24 15:47:18 2005 UTC
# Line 13  Line 13 
13  Name "w2hfax"  Name "w2hfax"
14    
15  ; The file to write  ; The file to write
16  OutFile "w2hfax.exe"  OutFile "w2hfax_setup.exe"
17    
18  ; The default installation directory  ; The default installation directory
19  InstallDir $PROGRAMFILES\w2hfax-test  InstallDir $PROGRAMFILES\w2hfax
20    
21  ; Registry key to check for directory (so if you install again, it will  ; Registry key to check for directory (so if you install again, it will
22  ; overwrite the old one automatically)  ; overwrite the old one automatically)
# Line 24  InstallDirRegKey HKLM "Software\NSIS_w2h Line 24  InstallDirRegKey HKLM "Software\NSIS_w2h
24    
25  Var redmonInstDir  Var redmonInstDir
26    
27    
28    
29    
30  ; --------------------------------  ; --------------------------------
31  ;   Pages  ;   Pages
32  ; --------------------------------  ; --------------------------------
# Line 35  Page instfiles Line 38  Page instfiles
38  UninstPage uninstConfirm  UninstPage uninstConfirm
39  UninstPage instfiles  UninstPage instfiles
40    
41    Var python_path
42    Var python_version
43    Var python_url
44    Var python_msi
45    
46    Var ghostscript_version
47    Var ghostscript_version_required
48    Var ghostview_version
49    Var ghostview_exe
50    
51    
52  ; --------------------------------  ; --------------------------------
53  ;   The stuff to install  ;   The stuff to install
54  ; --------------------------------  ; --------------------------------
55    
56  ;Section "w2hfax (required)"  Section "Python" IDX_PYTHON
57  Section "w2hfax"    Call install_python
58      Call check_python
59    SectionEnd
60    
61    Section "Python for Win32 Extensions" IDX_PYTHONWIN
62      Call install_pythonwin
63      Call check_pythonwin
64    SectionEnd
65    
66    Section "AFPL Ghostscript 8.50" IDX_GHOSTSCRIPT
67      Call install_ghostscript
68      Call check_ghostscript
69    SectionEnd
70    
71    Section "GSview 4.6" IDX_GHOSTVIEW
72      Call install_ghostview
73      Call check_ghostview
74    SectionEnd
75    
76    
77    Section "w2hfax" IDX_W2HFAX
78    
79    SetDetailsPrint both    SetDetailsPrint both
80    DetailPrint "Installing w2hfax..."    DetailPrint "Installing w2hfax..."
# Line 55  Section "w2hfax" Line 88  Section "w2hfax"
88    File "C:\tmp\w2hfax-make\w2hfax\*.*"    File "C:\tmp\w2hfax-make\w2hfax\*.*"
89        
90    ; Write the installation path into the registry    ; Write the installation path into the registry
91    WriteRegStr HKLM SOFTWARE\NSIS_w2hfax "Install_Dir" "$INSTDIR"    WriteRegStr HKLM Software\NSIS_w2hfax "Install_Dir" "$INSTDIR"
92        
93    ; Write the uninstall keys for Windows    ; Write the uninstall keys for Windows
94    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\w2hfax" "DisplayName" "w2hfax"    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\w2hfax" "DisplayName" "w2hfax"
# Line 67  Section "w2hfax" Line 100  Section "w2hfax"
100    DetailPrint "Registering w2hfax COM-Server..."    DetailPrint "Registering w2hfax COM-Server..."
101    
102    ; register "w2hfax COM-Server" (a python class) using the PyWin library    ; register "w2hfax COM-Server" (a python class) using the PyWin library
103    ;nsExec::Exec "$INSTDIR\hfaxcom.py"    nsExec::Exec "$python_path\python $INSTDIR\hfaxcom.py"
104    ; TODO: Use $pythonInstDir here!    
105    nsExec::Exec "python $INSTDIR\hfaxcom.py"    Call w2hfax_configure
106    
107  SectionEnd  SectionEnd
108    
109    
110  Section "RedMon Port Redirection Monitor"  Section "RedMon Port Redirection Monitor" IDX_REDMON
111    
112    SetDetailsPrint both    SetDetailsPrint both
113    DetailPrint "Installing RedMon Port Redirection Monitor..."    DetailPrint "Installing RedMon Port Redirection Monitor..."
# Line 88  Section "RedMon Port Redirection Monitor Line 121  Section "RedMon Port Redirection Monitor
121        
122    ; Put file there    ; Put file there
123    File "C:\tmp\w2hfax-make\redmon17de\*.*"    File "C:\tmp\w2hfax-make\redmon17de\*.*"
124      ; TODO: integrate into here to use current $INSTDIR
125    File "redmon_configure.reg"    File "redmon_configure.reg"
126        
127    ; Write the installation path into the registry    ; Write the installation path into the registry
# Line 104  Section "RedMon Port Redirection Monitor Line 138  Section "RedMon Port Redirection Monitor
138    nsExec::Exec "$redmonInstDir\setup.exe"    nsExec::Exec "$redmonInstDir\setup.exe"
139        
140    DetailPrint "Configuring RedMon Port Redirection Monitor..."    DetailPrint "Configuring RedMon Port Redirection Monitor..."
141      ; TODO: integrate into here to use current $INSTDIR
142    nsExec::Exec "$redmonInstDir\redmon_configure.reg"    nsExec::Exec "$redmonInstDir\redmon_configure.reg"
143        
144  SectionEnd  SectionEnd
145    
146    
147  ; Optional section (can be disabled by the user)  ; Optional section (can be disabled by the user)
148  Section "Start Menu Shortcuts"  Section "Start Menu Shortcuts" IDX_STARTMENU
149    
150    SetDetailsPrint both    SetDetailsPrint both
151    DetailPrint "Installing Start Menu and Desktop Shortcuts..."    DetailPrint "Installing Start Menu and Desktop Shortcuts..."
# Line 122  Section "Start Menu Shortcuts" Line 157  Section "Start Menu Shortcuts"
157  SectionEnd  SectionEnd
158    
159    
160    
161  ; --------------------------------  ; --------------------------------
162  ;   Uninstaller  ;   Uninstaller
163  ; --------------------------------  ; --------------------------------
164    
165  Section "Uninstall"  Section "Uninstall" IDX_UNINSTALL
166    
167    ; ------------------    ; ------------------
168    ;  uninstall redmon    ;  uninstall redmon
# Line 168  Section "Uninstall" Line 204  Section "Uninstall"
204    RMDir "$INSTDIR"    RMDir "$INSTDIR"
205    
206  SectionEnd  SectionEnd
207    
208    
209    ; --------------------------------
210    ;   Functions
211    ; --------------------------------
212    
213    Function check_python
214    
215      SetDetailsPrint both
216      DetailPrint "Checking for Python installation..."
217      
218      ClearErrors
219      
220      ReadRegStr $python_path HKLM Software\Python\PythonCore\2.4\InstallPath ""
221      IfErrors +3
222        StrCpy $python_version "2.4"
223        Goto found_python
224        
225      ReadRegStr $python_path HKLM Software\Python\PythonCore\2.3\InstallPath ""
226      IfErrors +3
227        StrCpy $python_version "2.3"
228        Goto found_python
229        
230      ReadRegStr $python_path HKLM Software\Python\PythonCore\2.2\InstallPath ""
231      IfErrors +3
232        StrCpy $python_version "2.2"
233        Goto found_python
234      
235      Goto no_python
236      
237      found_python:
238        ; check if python.exe is really present
239        ClearErrors
240        IfFileExists $python_path\python.exe 0 +2
241        DetailPrint "Found Python $python_version at: $python_path."
242        Return
243      
244      no_python:
245        ; error: no python
246        ;MessageBox MB_OK "No Python installation found (checked HKLM\Software\Python\PythonCore\2.3 and HKLM\Software\Python\PythonCore\2.2)."
247        ;Call install_python
248        SetErrors
249    
250    FunctionEnd
251    
252    
253    
254    Function install_python
255    
256      IfFileExists "$EXEDIR\python-2.4.msi" 0 +2
257        StrCpy $python_msi "$EXEDIR\python-2.4.msi"
258      IfFileExists "$INSTDIR\python-2.4.msi" 0 +2
259        StrCpy $python_msi "$INSTDIR\python-2.4.msi"
260      
261      ;MessageBox MB_OK $python_msi
262      StrCmp $python_msi "" 0 run_setup
263    
264      SetDetailsPrint textonly
265      DetailPrint "Downloading Python 2.3"
266      SetDetailsPrint listonly
267      
268      StrCpy $python_url "http://www.python.org/ftp/python/2.4/python-2.4.msi"
269      MessageBox MB_YESNO "Download Python 2.3 from $python_url?" IDYES NoCancelAbort
270        ;Abort ; causes uninstaller to not quit.
271        Return
272        
273      NoCancelAbort:
274        NSISdl::download $python_url $EXEDIR\python-2.4.msi
275        
276      run_setup:
277        IfFileExists $python_msi 0 +10
278          SetDetailsPrint textonly
279          DetailPrint "Installing Python..."
280          SetDetailsPrint listonly
281          ExecWait 'msiexec /i "$python_msi"'
282    
283    FunctionEnd
284    
285    
286    Function check_pythonwin
287    
288      SetDetailsPrint both
289      DetailPrint "Checking for installation of 'Python for Win32 Extensions'..."
290      IfFileExists "$python_path\Lib\site-packages\win32com\server\register.py" 0 no_pythonwin
291        Return
292      
293      no_pythonwin:
294        SetErrors
295    
296    FunctionEnd
297    
298    
299    Function install_pythonwin
300    
301      ; installer exe
302      StrCmp $python_version "2.2" 0 +2
303        StrCpy $R0 "pywin32-203.win32-py2.2.exe"
304      StrCmp $python_version "2.3" 0 +2
305        StrCpy $R0 "pywin32-203.win32-py2.3.exe"
306      StrCmp $python_version "2.4" 0 +2
307        StrCpy $R0 "pywin32-203.win32-py2.4.exe"
308    
309      ; download base
310      StrCpy $R1 "http://mesh.dl.sourceforge.net/sourceforge/pywin32/$R0"
311    
312      StrCpy $R2 ""
313      IfFileExists "$EXEDIR\$R0" 0 +2
314        StrCpy $R2 "$EXEDIR\R0"
315      IfFileExists "$INSTDIR\$R0" 0 +2
316        StrCpy $R2 "$INSTDIR\$R0"
317      
318      ;MessageBox MB_OK $R2
319      StrCmp $R2 "" 0 run_setup
320    
321      SetDetailsPrint textonly
322      DetailPrint "Downloading 'Python for Win32 Extensions'"
323      SetDetailsPrint listonly
324      
325      MessageBox MB_YESNO "Download 'Python for Win32 Extensions' from $R1?" IDYES NoCancelAbort
326        ;Abort ; causes uninstaller to not quit.
327        Return
328        
329      NoCancelAbort:
330        NSISdl::download $R1 $EXEDIR\$R0
331        StrCpy $R2 "$INSTDIR\$R0"
332        
333      run_setup:
334        IfFileExists $R2 0 +10
335          SetDetailsPrint textonly
336          DetailPrint "Installing 'Python for Win32 Extensions'..."
337          SetDetailsPrint listonly
338          ExecWait '"$R2"'
339    
340    FunctionEnd
341    
342    
343    Function check_ghostscript
344    
345      SetDetailsPrint both
346      DetailPrint "Checking for Ghostscript installation..."
347      
348      ClearErrors
349      StrCpy $ghostscript_version_required 8.50
350      
351      StrCpy $0 0
352      loop:
353        EnumRegKey $1 HKLM "SOFTWARE\AFPL Ghostscript" $0
354        StrCmp $1 "" done
355        IntOp $0 $0 + 1
356        ; MessageBox MB_YESNO|MB_ICONQUESTION "$1$\n$\nMore?" IDYES loop
357      done:
358        StrCpy $ghostscript_version $1
359    
360      ReadRegStr $R0 HKLM "Software\AFPL Ghostscript\$ghostscript_version" "GS_DLL"
361      IfFileExists "$R0" 0 no_ghostscript
362    
363      StrCpy $R0 $ghostscript_version
364      StrCpy $R1 $ghostscript_version_required
365      Math::Script "R2 = #[R0 >= R1, 1, 0]"
366      StrCmp $R2 "1" 0 no_ghostscript
367        Return
368      
369      no_ghostscript:
370        SetErrors
371    
372    FunctionEnd
373    
374    
375    Function install_ghostscript
376    
377      ; installer exe
378      StrCpy $R0 "gs850w32.exe"
379    
380      ; download base
381      StrCpy $R1 "ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/gs850/$R0"
382      
383      ; package title
384      StrCpy $R9 "AFPL Ghostscript 8.50"
385    
386      StrCpy $R2 ""
387      IfFileExists "$EXEDIR\$R0" 0 +2
388        StrCpy $R2 "$EXEDIR\R0"
389      IfFileExists "$INSTDIR\$R0" 0 +2
390        StrCpy $R2 "$INSTDIR\$R0"
391      
392      StrCmp $R2 "" 0 run_setup
393    
394      SetDetailsPrint textonly
395      DetailPrint "Downloading '$R9'"
396      SetDetailsPrint listonly
397      
398      MessageBox MB_YESNO "Download '$R9' from $R1?" IDYES NoCancelAbort
399        ;Abort ; causes uninstaller to not quit.
400        Return
401        
402      NoCancelAbort:
403        NSISdl::download $R1 $EXEDIR\$R0
404        StrCpy $R2 "$INSTDIR\$R0"
405        
406      run_setup:
407        IfFileExists $R2 0 +10
408          SetDetailsPrint textonly
409          DetailPrint "Installing '$R9'..."
410          SetDetailsPrint listonly
411          ExecWait '"$R2"'
412    
413    FunctionEnd
414    
415    
416    Function check_ghostview
417    
418      SetDetailsPrint both
419      DetailPrint "Checking for GSview installation..."
420      
421      ReadRegStr $R0 HKLM Software\Ghostgum\GSview "4.3"
422      IfFileExists "$R0\gsview\gsview32.exe" 0 +3
423        StrCpy $ghostview_version "4.3"
424        Goto ok_ghostview
425    
426      ReadRegStr $R0 HKLM Software\Ghostgum\GSview "4.6"
427      IfFileExists "$R0\gsview\gsview32.exe" 0 no_ghostview
428        StrCpy $ghostview_version "4.6"
429        Goto ok_ghostview
430    
431      ok_ghostview:
432        StrCpy $ghostview_exe "$R0\gsview\gsview32.exe"
433        ClearErrors
434        Return
435    
436      no_ghostview:
437        SetErrors
438      
439    FunctionEnd
440    
441    
442    Function install_ghostview
443    
444      ClearErrors
445    
446      ; installer exe
447      StrCpy $R0 "gsv46w32.exe"
448    
449      ; download base
450      StrCpy $R1 "ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/ghostgum/$R0"
451      
452      ; package title
453      StrCpy $R9 "GSview 4.6"
454    
455      StrCpy $R2 ""
456      IfFileExists "$EXEDIR\$R0" 0 +2
457        StrCpy $R2 "$EXEDIR\R0"
458      IfFileExists "$INSTDIR\$R0" 0 +2
459        StrCpy $R2 "$INSTDIR\$R0"
460      
461      StrCmp $R2 "" 0 run_setup
462    
463      SetDetailsPrint textonly
464      DetailPrint "Downloading '$R9'"
465      SetDetailsPrint listonly
466      
467      MessageBox MB_YESNO "Download '$R9' from $R1?" IDYES NoCancelAbort
468        ;Abort ; causes uninstaller to not quit.
469        Return
470        
471      NoCancelAbort:
472        NSISdl::download $R1 $EXEDIR\$R0
473        StrCpy $R2 "$INSTDIR\$R0"
474        
475      run_setup:
476        IfFileExists $R2 0 +10
477          SetDetailsPrint textonly
478          DetailPrint "Installing '$R9'..."
479          SetDetailsPrint listonly
480          ExecWait '"$R2"'
481    
482    FunctionEnd
483    
484    
485    ; --------------------------------
486    ;   Startup
487    ; --------------------------------
488    Function .onInit
489    
490      Call check_python
491      IfErrors 0 python_found
492        SectionSetFlags ${IDX_PYTHON} 1
493        ;Return
494        Goto pythonwin
495    
496      python_found:
497        SectionSetFlags ${IDX_PYTHON} 0
498        SectionSetText ${IDX_PYTHON} "Python (found version $python_version)"
499        ;Return
500    
501    
502      pythonwin:
503      Call check_pythonwin
504      IfErrors 0 pythonwin_found
505        SectionSetFlags ${IDX_PYTHONWIN} 1
506        ;Return
507        Goto ghostscript
508    
509      pythonwin_found:
510        SectionSetFlags ${IDX_PYTHONWIN} 0
511        SectionSetText ${IDX_PYTHONWIN} "Python for Win32 Extensions (found)"
512        ;Return
513    
514    
515      ghostscript:
516      Call check_ghostscript
517      IfErrors 0 ghostscript_found
518        SectionSetFlags ${IDX_GHOSTSCRIPT} 1
519        StrCmp $ghostscript_version "" 0 +1
520        SectionSetText ${IDX_GHOSTSCRIPT} "AFPL Ghostscript 8.50 (not found)"
521        SectionSetText ${IDX_GHOSTSCRIPT} "AFPL Ghostscript 8.50 (found $ghostscript_version < $ghostscript_version_required)"
522        ;Return
523        Goto ghostview
524    
525      ghostscript_found:
526        SectionSetFlags ${IDX_GHOSTSCRIPT} 0
527        SectionSetText ${IDX_GHOSTSCRIPT} "AFPL Ghostscript 8.50 (found $ghostscript_version)"
528    
529    
530      ghostview:
531      Call check_ghostview
532      IfErrors 0 ghostview_found
533        SectionSetFlags ${IDX_GHOSTVIEW} 1
534        Return
535    
536      ghostview_found:
537        SectionSetFlags ${IDX_GHOSTVIEW} 0
538        SectionSetText ${IDX_GHOSTVIEW} "GSview 4.6 (found $ghostview_version)"
539    
540    FunctionEnd
541    
542    
543    Function w2hfax_configure
544      ; (pre-)configure w2hfax here!
545      ; e.g. set tiff-viewer dependent of operating system: use shimgvw.dll for WinXP, use Kodak Imaging for Win2000 or others
546      
547      ; set PostScript viewer
548      WriteRegStr HKCU Software\GNU\w2hfax "psviewer" "$ghostview_exe"
549    
550      ; set TIFF viewer
551      StrCpy $R1 ""
552      
553      ; if os == xp
554      StrCpy $R2 ""
555      ReadRegStr $R2 HKLM "Software\Microsoft\Windows NT\CurrentVersion" "ProductName"
556      StrCmp $R2 "Microsoft Windows XP" 0 noWinXP
557        StrCpy $R1 "rundll32.exe shimgvw.dll,ImageView_Fullscreen"
558        Goto ok_tiffviewer
559      
560      noWinXP:
561        IfFileExists "$PROGRAMFILES\Windows NT\Zubehör\ImageVue\kodakimg.exe" 0 +2
562          StrCpy $R1 "$PROGRAMFILES\Windows NT\Zubehör\ImageVue\kodakimg.exe"
563        IfFileExists "$PROGRAMFILES\Windows NT\Accessories\ImageVue\wangimg.exe" 0 +2
564          StrCpy $R1 "$PROGRAMFILES\Windows NT\Accessories\ImageVue\wangimg.exe"
565    
566      ok_tiffviewer:
567        StrCmp $R1 "" no_tiffviewer
568          ;MessageBox MB_OK $R1
569          WriteRegStr HKCU Software\GNU\w2hfax "tifviewer" "$R1"
570        Return
571      
572      no_tiffviewer:
573      Return
574    
575    FunctionEnd

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.4

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed