X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=scripts%2Finstallation_check.pl;h=0e6a6c518c249c201abfb081069d85bca8fbc29e;hb=fe8d6c893279abaa76ea3e20424bbf5d66de071e;hp=6eca871891425fa10e15010a5ce3d638621610a7;hpb=3c73035dcbdd5141987ef751d5172ddfd3d257ba;p=kivitendo-erp.git diff --git a/scripts/installation_check.pl b/scripts/installation_check.pl index 6eca87189..0e6a6c518 100755 --- a/scripts/installation_check.pl +++ b/scripts/installation_check.pl @@ -1,5 +1,7 @@ #!/usr/bin/perl -w +use strict; + BEGIN { unshift @INC, "modules/override"; # Use our own versions of various modules (e.g. YAML). push @INC, "modules/fallback"; # Only use our own versions of modules if there's no system version. @@ -9,36 +11,55 @@ use SL::InstallationCheck; $| = 1; -foreach my $module (@SL::InstallationCheck::required_modules) { - if ($module->{version}) { - print("Looking for $module->{name} $module->{version}..."); - } else { - print("Looking for $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 $module->{name}\"\n" . - " or download it from this URL and install it manually:\n" . - " $module->{url}\n\n"); - } else { - print(" ok\n"); - } +check($_, 0) for @SL::InstallationCheck::required_modules; +check($_, 1) for @SL::InstallationCheck::optional_modules; + +sub check { + my ($module, $optional) = @_; + + print "Looking for $module->{fullname}..."; + my $res = SL::InstallationCheck::module_available($module->{"name"}, $module->{version}); + print $res ? '' : " NOT", " ok\n"; + + return if $res; + + my $needed_text = $optional + ? 'It is OPTIONAL for Lx-Office but recommended for improved functionality.' + : 'It is NEEDED by Lx-Office and must be installed.'; + + my @source_texts = source_texts($module); + local $" = $/; + print <{fullname} could not be loaded. + + This module is either too old or not available on your system. + $needed_text + + Here are some ideas how to get it: + +@source_texts ++-----------------------------------------------------------------------------+ +EOL } -foreach my $module (@SL::InstallationCheck::optional_modules) { - print("Looking for $module->{name} (optional)..."); - if (!SL::InstallationCheck::module_available($module->{"name"})) { - print(" NOT found\n" . - " The module '$module->{name}' is not available on your system.\n" . - " While it is not strictly needed it provides extra functionality\n" . - " and should be installed.\n" . - " You can install it with the CPAN shell, e.g.\n" . - " perl -MCPAN -e \"install $module->{name}\"\n" . - " or download it from this URL and install it manually:\n" . - " $module->{url}\n\n"); - } else { - print(" ok\n"); - } +sub source_texts { + my ($module) = @_; + my @texts; + push @texts, <{name}" +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 you system is old. +EOL + # TODO: SuSE and Fedora packaging. Windows packaging. + + return @texts; }