#!@-PERL-@ -w ###################################################################### ### gnc-fq-check - check for the presence of Finance::Quote ### From gnc-fq-helper. ### Copyright 2001 Rob Browning ### ### This program is free software; you can redistribute it and/or ### modify it under the terms of the GNU General Public License as ### published by the Free Software Foundation; either version 2 of ### the License, or (at your option) any later version. ### ### This program is distributed in the hope that it will be useful, ### but WITHOUT ANY WARRANTY; without even the implied warranty of ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ### GNU General Public License for more details. ### ### You should have received a copy of the GNU General Public License ### along with this program# if not, contact: ### ### Free Software Foundation Voice: +1-617-542-5942 ### 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 ### Boston, MA 02110-1301, USA gnu@gnu.org ###################################################################### use strict; use English; use FileHandle; =head1 NAME gnc-fq-check - check for the presence of Finance::Quote From gnc-fq-helper =head1 SYNOPSIS gnc-fq-check =head1 DESCRIPTION Input: Output (on standard output, one output form per input line): A list of quote sources supported by Finance::Quote, or the single term missing-lib if finance quote could not be executed. Exit status 0 - success non-zero - failure =cut sub check_modules { my @modules = qw(Finance::Quote); my @missing; foreach my $mod (@modules) { if (eval "require $mod") { $mod->import(); } else { push (@missing, $mod); } } return unless @missing; print STDERR "\n"; print STDERR "You need to install the following Perl modules:\n"; foreach my $mod (@missing) { print STDERR " ".$mod."\n"; } print STDERR "\n"; print STDERR "Use your system's package manager to install them,\n"; print STDERR "or run 'gnc-fq-update' as root.\n"; print "missing-lib\n"; exit 1; } #--------------------------------------------------------------------------- # Runtime. # Check for and load non-standard modules check_modules (); # Create a stockquote object. my $quoter = Finance::Quote->new(); my $prgnam = "gnc-fq-check"; my @qsources; my @sources = $quoter->sources(); foreach my $source (@sources) { push(@qsources, "\"$source\""); } printf "(\"%s\" %s)\n", $Finance::Quote::VERSION, join(" ", sort(@qsources)); ## Local Variables: ## mode: perl ## End: