Erste Version migrate_menu
[kivitendo-erp.git] / scripts / installation_check.pl
index 6a65ec5..43b290a 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 = (
@@ -70,9 +71,7 @@ if (!defined $check{a}
 }
 
 if ($check{a}) {
-  foreach my $check (keys %check) {
-    $check{$check} = 1 unless defined $check{$check};
-  }
+  $check{$_} //= 1 for qw(o d l r);
 }
 
 
@@ -104,7 +103,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 +121,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 +135,8 @@ if (@missing_modules && $apt) {
   }
 }
 
+exit !!@missing_modules;
+
 sub check_latex {
   my ($res) = check_kpsewhich();
   print_result("Looking for LaTeX kpsewhich", $res);
@@ -158,7 +159,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 +183,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 +223,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 +271,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]:", $/;
 }