r22170 - gnucash/trunk/packaging/win32 - Rearrange install-fq-mods.cmd to avoid duplicate code and make it easier to understand

Geert Janssens gjanssens at code.gnucash.org
Sun May 6 17:19:34 EDT 2012


Author: gjanssens
Date: 2012-05-06 17:19:34 -0400 (Sun, 06 May 2012)
New Revision: 22170
Trac: http://svn.gnucash.org/trac/changeset/22170

Modified:
   gnucash/trunk/packaging/win32/install-fq-mods.cmd
Log:
Rearrange install-fq-mods.cmd to avoid duplicate code and make it easier to understand

Modified: gnucash/trunk/packaging/win32/install-fq-mods.cmd
===================================================================
--- gnucash/trunk/packaging/win32/install-fq-mods.cmd	2012-05-06 21:19:24 UTC (rev 22169)
+++ gnucash/trunk/packaging/win32/install-fq-mods.cmd	2012-05-06 21:19:34 UTC (rev 22170)
@@ -1,5 +1,6 @@
 @echo off
 setlocal
+
 REM ----------------------------------------------------------------------------
 if not exist ssleay32.dll (
   echo.
@@ -7,6 +8,7 @@
   echo Please start this cmd file in the bin directory created by the setup.exe.
   goto error
 )
+
 REM ----------------------------------------------------------------------------
 echo.
 echo * Check Perl
@@ -14,53 +16,50 @@
 perl -v > NUL 2>&1 
 if %errorlevel% equ 0 goto chkver
 echo. 
-echo   no perl executable found
-echo. 
-echo Now finding and installing perl.....
+echo   No Perl executable found, attempt to install Strawberry Perl
+
 REM ----------------------------------------------------------------------------
 echo.
-echo   * download Strawberry perl
+echo * Download Strawberry Perl package
 echo.
 call cscript//nologo getperl.vbs %TEMP%\Perl.msi
-if %errorlevel% equ 0 goto donegetperl
+if %errorlevel% neq 0 (
    echo   Return Value: "%errorlevel%"
    echo.
    echo   failed to download perl install file
    echo.
    goto error
-:donegetperl
+)
+
 REM ----------------------------------------------------------------------------
 echo.
-echo   * automated Perl install
+echo * Run automated Perl install
 echo.
 msiexec /qb /l* %TEMP%\perl-log.txt /i %TEMP%\Perl.msi PERL_PATH=Yes PERL_EXT=Yes
-if %errorlevel% equ 0 goto doneperlinst
+if %errorlevel% neq 0 (
    echo   Return Value: "%errorlevel%"
    echo.
-   echo   failed to install perl (%TEMP%\Perl.msi)
+   echo   failed to install perl from %TEMP%\Perl.msi
    echo.
+   del  %TEMP%\Perl.msi
    goto error
-:doneperlinst
+)
 perl -v
 del  %TEMP%\Perl.msi
+
 REM ----------------------------------------------------------------------------
 echo.
-echo   * updating PATH variable to include Perl 
+echo * Update PATH variable to include Perl
 echo.
 :: delims is a TAB followed by a space
 FOR /F "tokens=2* delims=	 " %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path') DO SET NewPath=%%B
 ECHO NewPath = %NewPath%
-set Path="%NewPath%"
+set Path=%NewPath%
+
 REM ----------------------------------------------------------------------------
-echo.
-echo * Run gnc-fq-update
-echo.
-perl -w gnc-fq-update
-if %errorlevel% neq 0 goto error
-REM ----------------------------------------------------------------------------
 :chkver
 echo.
-echo * Check Perl Version
+echo * Check Perl version
 echo.
 perl -e "exit(int($]));"
 set _perlmajor=%errorlevel%
@@ -69,70 +68,74 @@
 if %_perlmajor% equ 5 (
   if %_perlminor% geq 10 (
     set _perlversion=5.10
-    goto ccp
+    goto pchk
   )
   if %_perlminor% equ 8 (
     set _perlversion=5.8
-    goto ccp
+    goto pchk
   )
+REM Note: GnuCash no longer "officially" supports perl 5.6, but as long as it works it will be allowed...
   if %_perlminor% equ 6 (
     set _perlversion=5.6
-    goto ccp
+    goto pchk
   )
 )
 echo.
-echo Did not find a usable perl.
-echo Please install ActivePerl 5.8, or above (http://www.activestate.com/store/activeperl)
+echo Found perl version %_perlmajor%.%_perlminor%, but GnuCash requires at least version 5.8.
+echo Please install version 5.8 or above of
+echo * ActivePerl (http://www.activestate.com/store/activeperl) or
+echo * Strawberry Perl (http://strawberry-perl.googlecode.com/files/)
 echo and add the bin directory to your Path environment variable.
 goto error
+
 REM ----------------------------------------------------------------------------
-:ccp
-echo.
-echo * Test for ActivePerl
-echo.
-perl -e "use Win32;if(defined &Win32::BuildNumber){exit 2;}else{exit 3;};"
-REM echo status = %errorlevel%
-if %errorlevel% equ 2 (
-set bld=AS
-goto pchk
-)else if %errorlevel% equ 3 (
-set bld=Other
-goto pchk
-)
-if %errorlevel% equ 0 goto pchk
-goto error
-REM ----------------------------------------------------------------------------
 :pchk
 REM echo.
 REM echo * Run gnc-path-check
 REM echo.
 REM perl -w gnc-path-check
 REM if %errorlevel% neq 0 goto error
+
 REM ----------------------------------------------------------------------------
+echo.
+echo * Determine which Perl flavour we have found
+echo.
+perl -e "use Win32;if(defined &Win32::BuildNumber){exit 2;}else{exit 3;};"
+REM echo status = %errorlevel%
+if %errorlevel% equ 2 (
+  echo   => ActivePerl
+  goto inst_mod_as
+) else if %errorlevel% equ 3 (
+  echo   => Other, probably Strawberry perl ?
+  goto inst_mod_oth
+) else if %errorlevel% neq 0 goto error
+
+REM ----------------------------------------------------------------------------
+:inst_mod_oth
+echo.
+echo * Install required perl modules
+echo.
+perl -w gnc-fq-update
+if %errorlevel% neq 0 goto error
+goto fqchk
+
+REM ----------------------------------------------------------------------------
+:inst_mod_as
 echo * Install DateManip
 echo.
-if "%bld%" equ "AS" (
 perl -x -S ppm install Date-Manip
 if %errorlevel% neq 0 (
   perl -x -S ppm install DateManip
   if %errorlevel% neq 0 goto error
 )
-)else if "%bld%" equ "Other" (
-perl -e "use strict;use CPAN;CPAN::Shell->install('Date::Manip');"
-if %errorlevel% neq 0 (
-echo   failed to install Date::Manip module
-goto error
-)
-)
+
 REM ----------------------------------------------------------------------------
 echo.
 echo * Install Crypt-SSLeay
 echo.
 
-
-if "%bld%" equ "AS" (
-set OLDPATH="%PATH%"
-set PATH="%CD%;%PATH%"
+set OLDPATH=%PATH%
+set PATH=%CD%;%PATH%
 if %_perlversion% == 5.6 (
   perl -x -S ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/Crypt-SSLeay.ppd
 ) else if %_perlversion% == 5.8 (
@@ -141,66 +144,44 @@
   perl -x -S ppm install Crypt-SSLeay
 )
 set errlvlbak=%errorlevel%
-set PATH="%OLDPATH%"
+set PATH=%OLDPATH%
 if "%errlvlbak%" neq "0" goto error
-)else if "%bld%" equ "Other" (
-echo using CPAN install for Crypt::SSLeay
-perl -e "use strict;use CPAN;CPAN::Shell->install('Crypt::SSLeay');"
-if %errorlevel% neq 0 (
-echo   failed to install Crypt::SSLeay module
-goto error
-)
-)
+
 REM ----------------------------------------------------------------------------
-REM for some reason a CPAN install of Finance::Quote does not install prequisite
-REM package HTML::Treebuilder
 echo.
-echo * Install HTML-TreeBuilder
-echo.
-if "%bld%" equ "Other" (
-perl -e "use strict;use CPAN;CPAN::Shell->install('HTML::TreeBuilder');"
-if %errorlevel% neq 0 (
-echo   failed to install HTML::TreeBuilder module
-goto error
-)
-)
-REM ----------------------------------------------------------------------------
-echo.
 echo * Install Finance-Quote
 echo.
-if "%bld%" equ "AS" (
 perl -x -S ppm install Finance-Quote
 if %errorlevel% neq 0 goto error
-)
-if "%bld%" equ "Other" (
-perl -e "use strict;use CPAN;CPAN::Shell->install('Finance::Quote');"
-if %errorlevel% neq 0 (
-echo   failed to install Finance::Quote module
-goto error
-)
-)
+
 REM ----------------------------------------------------------------------------
+:fqchk
 echo.
 echo * Run gnc-fq-check
 echo.
 perl -w gnc-fq-check
 if %errorlevel% neq 0 goto error
+
 REM ----------------------------------------------------------------------------
 echo.
 echo * Run gnc-fq-helper
 echo.
 echo (yahoo "AMZN") | perl -w gnc-fq-helper
 if %errorlevel% neq 0 goto error
+
 REM ----------------------------------------------------------------------------
+:success
 echo.
 echo * Installation succeeded
 echo.
 goto end
+
 REM ----------------------------------------------------------------------------
 :error:
 echo.
 echo An error occurred, see above.
 echo.
+
 REM ----------------------------------------------------------------------------
 :end
 pause



More information about the gnucash-changes mailing list