]> wagnertech.de Git - mfinanz.git/blobdiff - scripts/installation_check.pl
restart apache2 in postinst
[mfinanz.git] / scripts / installation_check.pl
index 743316a4609b1494bd17d7c47250a3df471bb716..643479ebe248655a3d3cd8035f2207ab7d389a1a 100755 (executable)
@@ -13,11 +13,11 @@ BEGIN {
 
 use strict;
 use Getopt::Long;
-use List::MoreUtils qw(uniq);
 use Pod::Usage;
 use Term::ANSIColor;
 use Text::Wrap;
 
+my $exit_code = 0;
 unless (eval { require Config::Std; 1 }){
   print STDERR <<EOL ;
 +------------------------------------------------------------------------------+
@@ -35,9 +35,30 @@ unless (eval { require Config::Std; 1 }){
 +------------------------------------------------------------------------------+
 EOL
 
-  exit 72;
+  $exit_code = 72;
 }
 
+
+unless (eval { require List::MoreUtils; 1 }){
+  print STDERR <<EOL ;
++------------------------------------------------------------------------------+
+  Perl Modul List::MoreUtils could not be loaded.
+
+  Debian: you may install the needed *.deb package with:
+    apt install liblist-moreutils-perl
+
+  Red Hat/Fedora/CentOS: you may install the needed *.rpm package with:
+    dnf install perl-List-MoreUtils
+
+
++------------------------------------------------------------------------------+
+EOL
+
+  $exit_code = 72;
+}
+
+exit $exit_code if $exit_code;
+
 use SL::InstallationCheck;
 use SL::LxOfficeConf;
 
@@ -82,7 +103,7 @@ if ($check{a}) {
 $| = 1;
 
 if (!SL::LxOfficeConf->read(undef, 'may fail')) {
-  print_header('Could not load the config file. If you have dependancies from any features enabled in the configuration these will still show up as optional because of this. Please rerun this script after installing the dependancies needed to load the configuration.')
+  print_header('Could not load the config file. If you have dependencies from any features enabled in the configuration these will still show up as optional because of this. Please rerun this script after installing the dependencies needed to load the configuration.')
 } else {
   SL::InstallationCheck::check_for_conditional_dependencies();
 }
@@ -95,7 +116,6 @@ if ($check{r}) {
 if ($check{o}) {
   print_header('Checking Optional Modules');
   check_module($_, optional => 1) for @SL::InstallationCheck::optional_modules;
-  check_aqbanking();
 }
 if ($check{d}) {
   print_header('Checking Developer Modules');
@@ -122,7 +142,7 @@ 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.
+optional dependencies, as well as LaTeX packages you might need.
 EOL
   }
 }
@@ -146,6 +166,10 @@ exit !!@missing_modules;
 sub check_latex {
   my ($res) = check_kpsewhich();
   print_result("Looking for LaTeX kpsewhich", $res);
+
+  # no pdfx -> no zugferd possible
+  my $ret = kpsewhich('template/print/', 'sty', 'pdfx');
+  die "Cannot use pdfx. Please install this package first (debian: apt install texlive-latex-extra)"  if $ret;
   if ($res) {
     check_template_dir($_) for SL::InstallationCheck::template_dirs($master_templates);
   }
@@ -158,9 +182,9 @@ sub check_template_dir {
   print_header("Checking LaTeX Dependencies for Master Templates '$dir'");
   kpsewhich($path, 'cls', $_) for SL::InstallationCheck::classes_from_latex($path, '\documentclass');
 
-  my @sty = sort { $a cmp $b } uniq (
+  my @sty = sort { $a cmp $b } List::MoreUtils::uniq (
     SL::InstallationCheck::classes_from_latex($path, '\usepackage'),
-    qw(textcomp ulem pdfx embedfile)
+    qw(textcomp ulem embedfile)
   );
   kpsewhich($path, 'sty', $_) for @sty;
 }
@@ -223,31 +247,6 @@ sub check_pdfinfo {
   }
 }
 
-sub check_aqbanking {
-  my $aqbin = $::lx_office_conf{applications}->{aqbanking};
-  if ( !$aqbin ) {
-    print_line('Looking for aqbanking executable', 'not configured','red');
-  }
-  else {
-    my $line = "Looking for aqbanking executable '".$aqbin."'";
-    my $shell_out = `$aqbin versions 2>&1 | grep AqBanking-CLI 2> /dev/null`;
-    my ($label,$version)  = split /:/,$shell_out;
-    if ( $label && $label eq ' AqBanking-CLI' ) {
-      chop $version;
-      my ($number_version) = $version =~ /(\d+)/;
-      if ($number_version < 6) {
-        print_line($line, "Requires at least version 6, current version is " . $version, 'red');
-      } else {
-        print_line($line, $version, 'green');
-      }
-    } else {
-      print_line($line, 'not installed','red');
-      my %modinfo = ( name => 'aqbanking' );
-      push @missing_modules, \%modinfo;
-    }
-  }
-}
-
 sub check_module {
   my ($module, %role) = @_;
 
@@ -270,7 +269,7 @@ sub check_module {
       $role{optional} ? 'It is OPTIONAL for kivitendo but RECOMMENDED for improved functionality.'
     : $role{required} ? 'It is NEEDED by kivitendo and must be installed.'
     : $role{devel}    ? 'It is OPTIONAL for kivitendo and only useful for developers.'
-    :                   'It is not listed as a dependancy yet. Please tell this the developers.';
+    :                   'It is not listed as a dependency yet. Please tell this the developers.';
 
   my @source_texts = module_source_texts($module);
   local $" = $/;
@@ -340,7 +339,7 @@ __END__
 
 =head1 NAME
 
-scripts/installation_check.pl - check kivitendo dependancies
+scripts/installation_check.pl - check kivitendo dependencies
 
 =head1 SYNOPSIS
 
@@ -372,11 +371,11 @@ No color output. Helpful to avoid terminal escape problems.
 
 =item C<-d, --devel>
 
-Probe for perl developer dependancies. (Used for console  and tags file)
+Probe for perl developer dependencies. (Used for console  and tags file)
 
 =item C<--no-devel>
 
-Don't probe for perl developer dependancies. (Useful in combination with --all)
+Don't probe for perl developer dependencies. (Useful in combination with --all)
 
 =item C<-h, --help>
 
@@ -408,7 +407,7 @@ Don't probe for LaTeX document classes and packages in master templates. (Useful
 
 =item C<-v. --verbose>
 
-Print additional info for missing dependancies
+Print additional info for missing dependencies
 
 =item C<-i, --install-command>