X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=scripts%2Finstallation_check.pl;h=0e6a6c518c249c201abfb081069d85bca8fbc29e;hb=f9676efea9ccfa01df2a57dca9c45cc8fde0d09e;hp=2022c1665b73b206963a5349c8e718b3b4657da3;hpb=99ed8abf161b15ba5456c34f59a6155281cb2eea;p=kivitendo-erp.git diff --git a/scripts/installation_check.pl b/scripts/installation_check.pl index 2022c1665..0e6a6c518 100755 --- a/scripts/installation_check.pl +++ b/scripts/installation_check.pl @@ -1,24 +1,65 @@ #!/usr/bin/perl -w +use strict; + BEGIN { - unshift @INC, "modules/YAML"; # Use our own version of YAML. - push @INC, "modules"; # Only use our own versions of modules if there's no system version. + 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. } use SL::InstallationCheck; $| = 1; -foreach my $module (@SL::InstallationCheck::required_modules) { - 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 +} + +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; }