"r|required!" => \ $check{r},
"h|help" => sub { pod2usage(-verbose => 2) },
"c|color!" => \ ( my $c = 1 ),
- "i|install!" => \ my $apt,
+ "i|install-command!" => \ my $apt,
);
my %install_methods = (
if ($check{r}) {
print_header('Checking Required Modules');
check_module($_, required => 1) for @SL::InstallationCheck::required_modules;
- print_header('Standard check for required modules done. See additional parameters for more checks (--help)') if $default_run;
}
if ($check{o}) {
print_header('Checking Optional Modules');
check_latex();
}
+my $fail = @missing_modules;
+print_header('Result');
+print_line('All', $fail ? 'NOT ok' : 'OK', $fail ? 'red' : 'green');
+
+if ($default_run) {
+ if (@missing_modules) {
+ $apt = 1;
+ print <<"EOL";
+
+HEY! It seems there are modules MISSING! Look for the red lines with "NOT ok"
+above. You'll want to fix those, I've enabled --install-command for you...
+EOL
+ } else {
+ print <<"EOL";
+
+Standard check done, everything is OK and up to date. Have a look at the --help
+section of this script to see some more advanced checks for developer and
+optional dependancies, as well as LaTeX packages you might need.
+EOL
+ }
+}
+
if (@missing_modules && $apt) {
- print "\nHere are some sample installation lines, choose one apporpriate for your system:\n\n";
+ print "\nHere are some sample installation lines, choose one appropriate for your system:\n\n";
local $Text::Wrap::separator = " \\\n";
for (keys %install_methods) {
sub module_source_texts {
my ($module) = @_;
my @texts;
- push @texts, <<EOL;
- - You can get it from CPAN:
- perl -MCPAN -e "install $module->{name}"
+ for my $key (keys %install_methods) {
+ my $method = $install_methods{$key};
+ push @texts, <<"EOL" if $module->{$method->{key}};
+ - Using $method->{system} you can install it with $key:
+ $method->{install} $module->{$method->{key}}
EOL
+ }
push @texts, <<EOL if $module->{url};
- You can download it from this URL and install it manually:
$module->{url}
EOL
- push @texts, <<EOL if $module->{debian};
- - On Debian, Ubuntu and other distros you can install it with apt-get:
- sudo apt-get install $module->{debian}
- Note: These may be out of date as well if your system is old.
-EOL
- # TODO: SuSE and Fedora packaging. Windows packaging.
return @texts;
}
Print additional info for missing dependancies
-=item C<-i, --install>
+=item C<-i, --install-command>
Tries to generate installation commands for the most common package managers.
Note that these lists can be slightly off, but it should still save you a lot