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 = $FindBin::Bin . '/../templates/print/';
use strict;
use Getopt::Long;
+use List::MoreUtils qw(uniq);
use Pod::Usage;
use Term::ANSIColor;
use Text::Wrap;
);
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" },
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');
print_header("Checking LaTeX Dependencies for Master Templates '$dir'");
kpsewhich($path, 'cls', $_) for SL::InstallationCheck::classes_from_latex($path, '\documentclass');
- kpsewhich($path, 'sty', $_) for SL::InstallationCheck::classes_from_latex($path, '\usepackage');
+
+ my @sty = sort { $a cmp $b } uniq (
+ SL::InstallationCheck::classes_from_latex($path, '\usepackage'),
+ qw(textcomp ulem pdfx embedfile)
+ );
+ kpsewhich($path, 'sty', $_) for @sty;
}
our $mastertemplate_path = './templates/print/';
$package =~ s/[^-_0-9A-Za-z]//g;
my $type_desc = $type eq 'cls' ? 'document class' : 'package';
- eval { use String::ShellQuote; 1 } or warn "can't load String::ShellQuote" && return;
- $dw = shell_quote $dw;
- my $e_package = shell_quote $package;
- my $e_type = shell_quote $type;
+ eval { require String::ShellQuote; 1 } or warn "can't load String::ShellQuote" && return;
+ $dw = String::ShellQuote::shell_quote $dw;
+ my $e_package = String::ShellQuote::shell_quote $package;
+ my $e_type = String::ShellQuote::shell_quote $type;
my $exit = system(qq|TEXINPUTS=".:$dw:" kpsewhich $e_package.$e_type > /dev/null|);
my $res = $exit > 0 ? 0 : 1;
}
}
+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 ) {