From: Sven Schöling Date: Fri, 10 Jan 2014 15:36:14 +0000 (+0100) Subject: Installcheck nochmal verbessert. X-Git-Tag: release-3.1.0beta1~22^2~11 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=53a78ccf4a0283a773990b9d03cd154fe29883e1;p=kivitendo-erp.git Installcheck nochmal verbessert. - 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 --- diff --git a/scripts/installation_check.pl b/scripts/installation_check.pl index 72f060540..6a65ec5e6 100755 --- a/scripts/installation_check.pl +++ b/scripts/installation_check.pl @@ -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, <{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, <{url}; - You can download it from this URL and install it manually: $module->{url} EOL - push @texts, <{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