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');
# 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;
- # check version 2018
- my $latex = $::lx_office_conf{applications}->{latex} || 'pdflatex';
- my $pdfx = (system ${latex} . ' --interaction=batchmode "\documentclass{minimal} \RequirePackage{pdfx} \csname @ifpackagelater\endcsname{pdfx}{2018/12/22}{}{\show\relax} \begin{document} \end{document}"');
-
- print_result ("Looking for pdfx version 2018 or higher", !$pdfx);
- push @missing_modules, \(name => 'pdfx') if $pdfx;
-
if ($res) {
check_template_dir($_) for SL::InstallationCheck::template_dirs($master_templates);
}
- print STDERR <<EOL if $pdfx;
-+------------------------------------------------------------------------------+
- Your pdfx version is too old. You cannot use ZuGFeRD or modern (2018+)
- templates. Please consider using a more recent LaTeX environment.
- Verify with:
- pdflatex --interaction=batchmode "\RequirePackage{pdfx}[2018/12/22]"
-+------------------------------------------------------------------------------+
-EOL
}
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 embedfile)
);
}
}
-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) = @_;