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 ;
+------------------------------------------------------------------------------+
+------------------------------------------------------------------------------+
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;
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');
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);
}
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;
}
}
}
-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) = @_;