Installations-Check-Modul. Das Script installation_check.pl nutzt es.
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 25 Jan 2007 16:32:28 +0000 (16:32 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 25 Jan 2007 16:32:28 +0000 (16:32 +0000)
SL/InstallationCheck.pm [new file with mode: 0644]
doc/INSTALL
scripts/installation_check.pl

diff --git a/SL/InstallationCheck.pm b/SL/InstallationCheck.pm
new file mode 100644 (file)
index 0000000..fc8560b
--- /dev/null
@@ -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;
index 99f6650..2582204 100644 (file)
@@ -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)
 
index 8b1017e..875c565 100755 (executable)
@@ -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 {