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