Installationcheck: --silent switch um es in shell scripte einzubinden
authorSven Schöling <s.schoeling@linet-services.de>
Mon, 4 Aug 2014 11:56:21 +0000 (13:56 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Mon, 4 Aug 2014 11:56:21 +0000 (13:56 +0200)
SL/InstallationCheck.pm
scripts/installation_check.pl

index 8b7c33b..b989325 100644 (file)
@@ -17,7 +17,7 @@ BEGIN {
 #   dist_name: name of the package in cpan if it differs from name (ex.: LWP != libwww-perl)
 @required_modules = (
   { name => "parent",                              url => "http://search.cpan.org/~corion/",    debian => 'libparent-perl' },
-  { name => "Archive::Zip",    version => '1.16',  url => "http://search.cpan.org/~phred/",     debian => 'libarchive-zip-perl' },
+  { name => "Archive::Zip",    version => '12.16',  url => "http://search.cpan.org/~phred/",     debian => 'libarchive-zip-perl' },
   { name => "Clone",                               url => "http://search.cpan.org/~rdf/",       debian => 'libclone-perl' },
   { name => "Config::Std",                         url => "http://search.cpan.org/~dconway/",   debian => 'libconfig-std-perl' },
   { name => "DateTime",                            url => "http://search.cpan.org/~drolsky/",   debian => 'libdatetime-perl' },
index 6a65ec5..1b64573 100755 (executable)
@@ -50,6 +50,7 @@ GetOptions(
   "h|help"      => sub { pod2usage(-verbose => 2) },
   "c|color!"    => \ ( my $c = 1 ),
   "i|install-command!"  => \ my $apt,
+  "s|silent"    => \ $check{s},
 );
 
 my %install_methods = (
@@ -104,7 +105,7 @@ my $fail = @missing_modules;
 print_header('Result');
 print_line('All', $fail ? 'NOT ok' : 'OK', $fail ? 'red' : 'green');
 
-if ($default_run) {
+if ($default_run && !$check{s}) {
   if (@missing_modules) {
     $apt = 1;
   print <<"EOL";
@@ -122,7 +123,7 @@ EOL
   }
 }
 
-if (@missing_modules && $apt) {
+if (@missing_modules && $apt && !$check{s}) {
   print "\nHere are some sample installation lines, choose one appropriate for your system:\n\n";
   local $Text::Wrap::separator = " \\\n";
 
@@ -136,6 +137,8 @@ if (@missing_modules && $apt) {
   }
 }
 
+exit !!@missing_modules;
+
 sub check_latex {
   my ($res) = check_kpsewhich();
   print_result("Looking for LaTeX kpsewhich", $res);
@@ -158,7 +161,7 @@ our $mastertemplate_path = './templates/print/';
 sub check_kpsewhich {
   return 1 if SL::InstallationCheck::check_kpsewhich();
 
-  print STDERR <<EOL if $v;
+  print STDERR <<EOL if $v && !$check{s};
 +------------------------------------------------------------------------------+
   Can't find kpsewhich, is there a proper installed LaTeX?
   On Debian you may run "aptitude install texlive-base-bin"
@@ -182,7 +185,7 @@ sub kpsewhich {
 
   print_result("Looking for LaTeX $type_desc $package", $res);
   if (!$res) {
-    print STDERR <<EOL if $v;
+    print STDERR <<EOL if $v && !$check{s};
 +------------------------------------------------------------------------------+
   LaTeX $type_desc $package could not be loaded.
 
@@ -222,7 +225,7 @@ sub check_module {
 
   my @source_texts = module_source_texts($module);
   local $" = $/;
-  print STDERR <<EOL if $v;
+  print STDERR <<EOL if $v && !$check{s};
 +------------------------------------------------------------------------------+
   $module->{fullname} could not be loaded.
 
@@ -270,10 +273,12 @@ sub print_result {
 
 sub print_line {
   my ($text, $res, $color) = @_;
+  return if $check{s};
   print $text, " ", ('.' x (78 - length($text) - length($res))), " ", mycolor($res, $color), $/;
 }
 
 sub print_header {
+  return if $check{s};
   print $/;
   print "$_[0]:", $/;
 }