Installcheck nochmal verbessert.
authorSven Schöling <s.schoeling@linet-services.de>
Fri, 10 Jan 2014 15:36:14 +0000 (16:36 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Fri, 10 Jan 2014 15:36:14 +0000 (16:36 +0100)
- ohne flags kommt jetzt eine zusammenfassung für Blinde.
- neues flag -i|--install-command das einem aggregierte apt-get etc Befehle baut
- das neue flag wird automatisch angemacht wenn Module fehlen und keine Flags übergeben wurden.
- paar Rechtschreibfehler behoben
- Als Seiteneffekt zeigen die --verbose Links jetzt auch yum und zypper
  (respektive suse und fedora Daten aus SL/InstallationCheck.pm) an

scripts/installation_check.pl

index 72f0605..6a65ec5 100755 (executable)
@@ -49,7 +49,7 @@ GetOptions(
   "r|required!" => \ $check{r},
   "h|help"      => sub { pod2usage(-verbose => 2) },
   "c|color!"    => \ ( my $c = 1 ),
-  "i|install!"  => \ my $apt,
+  "i|install-command!"  => \ my $apt,
 );
 
 my %install_methods = (
@@ -87,7 +87,6 @@ if (!SL::LxOfficeConf->read(undef, 'may fail')) {
 if ($check{r}) {
   print_header('Checking Required Modules');
   check_module($_, required => 1) for @SL::InstallationCheck::required_modules;
-  print_header('Standard check for required modules done. See additional parameters for more checks (--help)') if $default_run;
 }
 if ($check{o}) {
   print_header('Checking Optional Modules');
@@ -101,8 +100,30 @@ if ($check{l}) {
   check_latex();
 }
 
+my $fail = @missing_modules;
+print_header('Result');
+print_line('All', $fail ? 'NOT ok' : 'OK', $fail ? 'red' : 'green');
+
+if ($default_run) {
+  if (@missing_modules) {
+    $apt = 1;
+  print <<"EOL";
+
+HEY! It seems there are modules MISSING! Look for the red lines with "NOT ok"
+above. You'll want to fix those, I've enabled --install-command for you...
+EOL
+  } else {
+  print <<"EOL";
+
+Standard check done, everything is OK and up to date. Have a look at the --help
+section of this script to see some more advanced checks for developer and
+optional dependancies, as well as LaTeX packages you might need.
+EOL
+  }
+}
+
 if (@missing_modules && $apt) {
-  print "\nHere are some sample installation lines, choose one apporpriate for your system:\n\n";
+  print "\nHere are some sample installation lines, choose one appropriate for your system:\n\n";
   local $Text::Wrap::separator = " \\\n";
 
   for (keys %install_methods) {
@@ -218,20 +239,17 @@ EOL
 sub module_source_texts {
   my ($module) = @_;
   my @texts;
-  push @texts, <<EOL;
-  - You can get it from CPAN:
-      perl -MCPAN -e "install $module->{name}"
+  for my $key (keys %install_methods) {
+    my $method = $install_methods{$key};
+    push @texts, <<"EOL" if $module->{$method->{key}};
+  - Using $method->{system} you can install it with $key:
+      $method->{install} $module->{$method->{key}}
 EOL
+  }
   push @texts, <<EOL if $module->{url};
   - You can download it from this URL and install it manually:
       $module->{url}
 EOL
-  push @texts, <<EOL if $module->{debian};
-  - On Debian, Ubuntu and other distros you can install it with apt-get:
-      sudo apt-get install $module->{debian}
-    Note: These may be out of date as well if your system is old.
-EOL
- # TODO: SuSE and Fedora packaging. Windows packaging.
 
   return @texts;
 }
@@ -338,7 +356,7 @@ Don't probe for LaTeX document classes and packages in master templates. (Useful
 
 Print additional info for missing dependancies
 
-=item C<-i, --install>
+=item C<-i, --install-command>
 
 Tries to generate installation commands for the most common package managers.
 Note that these lists can be slightly off, but it should still save you a lot