X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=scripts%2Finstallation_check.pl;h=0f0dc202be12d2abb0e5281938ccb5cdb50b9232;hb=fc1ff1a03f56176d1e84bc0345443f561426a4a7;hp=6a558ab2a96a81fcbcd2772c2e691d1daccbc9c9;hpb=a79735891c828f6eb91645067b2568407f4659de;p=kivitendo-erp.git diff --git a/scripts/installation_check.pl b/scripts/installation_check.pl index 6a558ab2a..0f0dc202b 100755 --- a/scripts/installation_check.pl +++ b/scripts/installation_check.pl @@ -4,45 +4,127 @@ use strict; use Getopt::Long; use Pod::Usage; use Term::ANSIColor; - +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. + + # this is a default dir. may be wrong in your installation, change it then + $master_templates = './templates/print/'; } use SL::InstallationCheck; +my %check; +Getopt::Long::Configure ("bundling"); GetOptions( - "verbose" => \ my $v, - "all" => \ my $a, - "optional!" => \ my $o, - "devel!" => \ my $d, - "required!" => \ ( my $r = 1 ), - "help" => sub { pod2usage(-verbose => 2) }, - "color" => \ ( my $c = 1 ), + "v|verbose" => \ my $v, + "a|all" => \ $check{a}, + "o|optional!" => \ $check{o}, + "d|devel!" => \ $check{d}, + "l|latex!" => \ $check{l}, + "r|required!" => \ $check{r}, + "h|help" => sub { pod2usage(-verbose => 2) }, + "c|color!" => \ ( my $c = 1 ), ); -$d = $r = $o = 1 if $a; +# if notihing is requested check "required" +$check{r} = 1 unless defined $check{a} || + defined $check{l} || + defined $check{o} || + defined $check{d}; + +if ($check{a}) { + foreach my $check (keys %check) { + $check{$check} = 1 unless defined $check{$check}; + } +} + $| = 1; -if ($r) { - check($_, required => 1) for @SL::InstallationCheck::required_modules; +if ($check{r}) { + print_header('Checking Required Modules'); + check_module($_, required => 1) for @SL::InstallationCheck::required_modules; +} +if ($check{o}) { + print_header('Checking Optional Modules'); + check_module($_, optional => 1) for @SL::InstallationCheck::optional_modules; } -if ($o) { - check($_, optional => 1) for @SL::InstallationCheck::optional_modules; +if ($check{d}) { + print_header('Checking Developer Modules'); + check_module($_, devel => 1) for @SL::InstallationCheck::developer_modules; } -if ($d) { - check($_, devel => 1) for @SL::InstallationCheck::developer_modules; +if ($check{l}) { + check_latex(); } -sub check { +sub check_latex { + my ($res) = check_kpsewhich(); + print_result("Looking for LaTeX kpsewhich", $res ? ('ok', 'green') : ('NOT ok', 'red')); + if ($res) { + check_template_dir($_) for SL::InstallationCheck::template_dirs($master_templates); + } +} + +sub check_template_dir { + my ($dir) = @_; + my $path = $master_templates . $dir; + + 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'); +} + +our $mastertemplate_path = './templates/print/'; + +sub check_kpsewhich { + return 1 if SL::InstallationCheck::check_kpsewhich(); + + print STDERR < /dev/null|); + my $res = $exit > 0 ? 0 : 1; + + print_result("Looking for LaTeX $type_desc $package", $res); + if (!$res) { + print STDERR <{"name"}, $module->{version}); - print dot_pad(length $line, $res ? 2 : 6, $res ? mycolor("ok", 'green') : mycolor("NOT ok", 'red')), $/; + print_result($line, $res); return if $res; @@ -52,7 +134,7 @@ sub check { : $role{devel} ? 'It is OPTIONAL for Lx-Office and only useful for developers.' : 'It is not listed as a dependancy yet. Please tell this the developers.'; - my @source_texts = source_texts($module); + my @source_texts = module_source_texts($module); local $" = $/; print STDERR < -Probe for all modules. +Probe for all perl modules and all LaTeX master templates. =item C<-c, --color> Color output. Default on. +=item C<--no-color> + +No color output. Helpful to avoid terminal escape problems. + =item C<-d, --devel> -Probe for developer dependancies. (Used for console and tags file) +Probe for perl developer dependancies. (Used for console and tags file) + +=item C<--no-devel> + +Don't probe for perl developer dependancies. (Useful in combination with --all) =item C<-h, --help> @@ -142,13 +243,29 @@ Display this help. Probe for optional modules. +=item C<--no-optional> + +Don't probe for optional perl modules. (Useful in combination with --all) + =item C<-r, --required> -Probe for required modules (default). +Probe for required perl modules (default). + +=item C<--no-required> + +Don't probe for required perl modules. (Useful in combination with --all) + +=item C<-l. --latex> + +Probe for LaTeX documentclasses and packages in master templates. + +=item C<--no-latex> + +Don't probe for LaTeX document classes and packages in master templates. (Useful in combination with --all) =item C<-v. --verbose> -Print additional info for modules that are missing +Print additional info for missing dependancies =back @@ -178,5 +295,6 @@ Version requirements not fully tested yet. Moritz Bunkus Em.bunkus@linet-services.deE Sven Schöling Es.schoeling@linet-services.deE + Wulf Coulmann Ewulf@coulmann.deE =cut