From 62a8aa81ec93edf284b3ffcc065120b3fe303fb5 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Thu, 25 Jan 2007 16:32:28 +0000 Subject: [PATCH] Installations-Check-Modul. Das Script installation_check.pl nutzt es. --- SL/InstallationCheck.pm | 36 +++++++++++++++++++++++++++++++++++ doc/INSTALL | 3 ++- scripts/installation_check.pl | 29 +++++----------------------- 3 files changed, 43 insertions(+), 25 deletions(-) create mode 100644 SL/InstallationCheck.pm diff --git a/SL/InstallationCheck.pm b/SL/InstallationCheck.pm new file mode 100644 index 000000000..fc8560bd0 --- /dev/null +++ b/SL/InstallationCheck.pm @@ -0,0 +1,36 @@ +package SL::InstallationCheck; + +use vars qw(@required_modules); + +@required_modules = ( + { "name" => "Class::Accessor", "url" => "http://search.cpan.org/~kasei/" }, + { "name" => "CGI", "url" => "http://search.cpan.org/~lds/" }, + { "name" => "CGI::Ajax", "url" => "http://search.cpan.org/~bct/" }, + { "name" => "DBI", "url" => "http://search.cpan.org/~timb/" }, + { "name" => "DBD::Pg", "url" => "http://search.cpan.org/~dbdpg/" }, + { "name" => "HTML::Template", "url" => "http://search.cpan.org/~samtregar/" }, + { "name" => "Archive::Zip", "url" => "http://search.cpan.org/~adamk/" }, + { "name" => "Text::Iconv", "url" => "http://search.cpan.org/~mpiotr/" }, + { "name" => "Klaus", "url" => "http://dum.my/" }, + ); + +sub module_available { + my ($module) = @_; + + if (!defined(eval("require $module;"))) { + return 0; + } else { + return 1; + } +} + +sub test_all_modules { + my @missing_modules; + + map({ push(@missing_modules, $_) unless (module_available($_)); } + @required_modules); + + return @missing_modules; +} + +1; diff --git a/doc/INSTALL b/doc/INSTALL index 99f665011..258220411 100644 --- a/doc/INSTALL +++ b/doc/INSTALL @@ -30,9 +30,10 @@ sind: * CGI::Ajax * Class::Accessor * Archive::Zip +* Text::Iconv Diese Pakete können bei den unterschiedlichen Distributionen anders heißen. -(Debian: apache, postgresql, libdbi-perl, libdbd-pg-perl, libpgperl, libhtml-template-perl, libclass-accessor-perl, libarchive-zip-perl) +(Debian: apache, postgresql, libdbi-perl, libdbd-pg-perl, libpgperl, libhtml-template-perl, libclass-accessor-perl, libarchive-zip-perl, libtext-iconv-perl) (Fedora: httpd, postgresql-server, perl-DBI, perl-DBD-Pg) (SuSE: apache2, postgresql-server, perl-DBI, perl-DBD-Pg) diff --git a/scripts/installation_check.pl b/scripts/installation_check.pl index 8b1017e2e..875c5651d 100755 --- a/scripts/installation_check.pl +++ b/scripts/installation_check.pl @@ -1,35 +1,16 @@ #!/usr/bin/perl -w -$| = 1; - -my @required_modules = ( - { "name" => "Class::Accessor", "url" => "http://search.cpan.org/~kasei/" }, - { "name" => "CGI", "url" => "http://search.cpan.org/~lds/" }, - { "name" => "CGI::Ajax", "url" => "http://search.cpan.org/~bct/" }, - { "name" => "DBI", "url" => "http://search.cpan.org/~timb/" }, - { "name" => "DBD::Pg", "url" => "http://search.cpan.org/~dbdpg/" }, - { "name" => "HTML::Template", "url" => "http://search.cpan.org/~samtregar/" }, - { "name" => "Archive::Zip", "url" => "http://search.cpan.org/~adamk/" }, - { "name" => "Text::Iconv", "url" => "http://search.cpan.org/~mpiotr/" }, - ); +use SL::InstallationCheck; -sub module_available { - my ($module) = @_; - - if (!defined(eval("require $module;"))) { - return 0; - } else { - return 1; - } -} +$| = 1; -foreach my $module (@required_modules) { +foreach my $module (@SL::InstallationCheck::required_modules) { print("Looking for $module->{name}..."); - if (!module_available($module->{"name"})) { + if (!SL::InstallationCheck::module_available($module->{"name"})) { print(" NOT found\n" . " The module '$module->{name}' is not available on your system.\n" . " Please install it with the CPAN shell, e.g.\n" . - " perl -MCPAN -e install \"install $module->{name}\"\n" . + " perl -MCPAN -e \"install $module->{name}\"\n" . " or download it from this URL and install it manually:\n" . " $module->{url}\n\n"); } else { -- 2.20.1