WebshopApi: File upload Übersetzungen
[kivitendo-erp.git] / scripts / installation_check.pl
index d32951b..48d78ea 100755 (executable)
@@ -1,19 +1,23 @@
 #!/usr/bin/perl -w
 
-use strict;
-use Getopt::Long;
-use Pod::Usage;
-use Term::ANSIColor;
-use Text::Wrap;
 our $master_templates;
 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.
+  use FindBin;
+
+  unshift(@INC, $FindBin::Bin . '/../modules/override'); # Use our own versions of various modules (e.g. YAML).
+  push   (@INC, $FindBin::Bin . '/..');                  # '.' will be removed from @INC soon.
+  push   (@INC, $FindBin::Bin . '/../modules/fallback'); # Only use our own versions of modules if there's no system version.
 
   # this is a default dir. may be wrong in your installation, change it then
-  $master_templates = './templates/print/';
+  $master_templates = $FindBin::Bin . '/../templates/print/';
 }
 
+use strict;
+use Getopt::Long;
+use Pod::Usage;
+use Term::ANSIColor;
+use Text::Wrap;
+
 unless (eval { require Config::Std; 1 }){
   print STDERR <<EOL ;
 +------------------------------------------------------------------------------+
@@ -54,7 +58,7 @@ GetOptions(
 );
 
 my %install_methods = (
-  apt    => { key => 'debian', install => 'sudo apt-get install', system => "Debian, Ubuntu" },
+  apt    => { key => 'debian', install => 'sudo apt install', system => "Debian, Ubuntu" },
   yum    => { key => 'fedora', install => 'sudo yum install',     system => "RHEL, Fedora, CentOS" },
   zypper => { key => 'suse',   install => 'sudo zypper install',  system => "SLES, openSUSE" },
   cpan   => { key => 'name',   install => "sudo cpan",            system => "CPAN" },
@@ -86,10 +90,12 @@ if (!SL::LxOfficeConf->read(undef, 'may fail')) {
 if ($check{r}) {
   print_header('Checking Required Modules');
   check_module($_, required => 1) for @SL::InstallationCheck::required_modules;
+  check_pdfinfo();
 }
 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');
@@ -197,6 +203,41 @@ EOL
   }
 }
 
+sub check_pdfinfo {
+  my $line = "Looking for pdfinfo executable";
+  my $shell_out = `pdfinfo -v 2>&1 | grep version 2> /dev/null`;
+  my ($label,$vers,$ver_string)  = split / /,$shell_out;
+  if ( $label && $label eq 'pdfinfo' ) {
+    chop $ver_string;
+    print_line($line, $ver_string, 'green');
+  } else {
+    print_line($line, 'not installed','red');
+    my %modinfo = ( debian => 'poppler-utils' );
+    push @missing_modules, \%modinfo;
+
+  }
+}
+
+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;
+      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) = @_;