ChartPicker: Strict-Modus & Warnungen von jshint beseitigt
[kivitendo-erp.git] / scripts / installation_check.pl
index 1b64573..8557f9e 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 ;
 +------------------------------------------------------------------------------+
@@ -71,16 +75,14 @@ if (!defined $check{a}
 }
 
 if ($check{a}) {
-  foreach my $check (keys %check) {
-    $check{$check} = 1 unless defined $check{$check};
-  }
+  $check{$_} //= 1 for qw(o d l r);
 }
 
 
 $| = 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 cofiguration.')
+  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.')
 } else {
   SL::InstallationCheck::check_for_conditional_dependencies();
 }
@@ -92,6 +94,7 @@ 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');
@@ -199,6 +202,26 @@ EOL
   }
 }
 
+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) = @_;