X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=scripts%2Ffind-use.pl;h=90242211094eed6e4cb05648e28f0b68f81e5914;hb=6f92326a8f2c1f9205a062d32ed8f1abdaa4b7b5;hp=554947d76b343f54463b10b5e4c37aa7598b84f1;hpb=3ceb381944924a7b6a14d69361754422b8b49589;p=kivitendo-erp.git diff --git a/scripts/find-use.pl b/scripts/find-use.pl index 554947d76..902422110 100755 --- a/scripts/find-use.pl +++ b/scripts/find-use.pl @@ -5,6 +5,7 @@ use File::Find; use Module::CoreList; use SL::InstallationCheck; use Term::ANSIColor; +use Getopt::Long; my (%uselines, %modules, %supplied, %requires); @@ -30,7 +31,15 @@ my (%uselines, %modules, %supplied, %requires); 'Template::Iterator' => 1, 'Template::Plugin' => 1, 'Template::Plugin::Filter' => 1, + 'Template::Plugin::HTML' => 1, }, + 'Devel::REPL' => { + 'namespace::clean' => 1, + } +); + +GetOptions( + 'files-with-match|l' => \ my $l, ); find(sub { @@ -81,7 +90,9 @@ for my $useline (keys %uselines) { my $version = Module::CoreList->first_release($module); $modules{$module} = { status => $supplied{$module} ? 'included' : $version ? sprintf '%2.6f', $version - : is_documented($module) ? 'required' + : is_required($module) ? 'required' + : is_optional($module) ? 'optional' + : is_developer($module) ? 'developer' : '!missing', files => $uselines{$useline}, }; @@ -103,7 +114,7 @@ while ($changed) { for my $dst_module (keys %{ $requires{$src_module} }) { if ( $modules{$src_module} && $modules{$dst_module} - && $modules{$src_module}->{status} =~ /^required/ + && $modules{$src_module}->{status} =~ /^(required|devel|optional)/ && $modules{$dst_module}->{status} eq '!missing') { $modules{$dst_module}->{status} = "required"; # . ", via $src_module"; $changed = 1; @@ -112,8 +123,12 @@ while ($changed) { } } -print sprintf "%8s : %s (%s)", color_text($modules{$_}->{status}), $_, join(' ', @{ $modules{$_}->{files} || [] }) - for sort { +do { + print sprintf "%8s : %s", color_text($modules{$_}->{status}), $_; + if ($l) { + print " $_" for @{ $modules{$_}->{files} || [] }; + } +} for sort { $modules{$a}->{status} cmp $modules{$b}->{status} || $a cmp $b } keys %modules; @@ -128,11 +143,21 @@ sub modulize { } } -sub is_documented { +sub is_required { my ($module) = @_; grep { $_->{name} eq $module } @SL::InstallationCheck::required_modules; } +sub is_optional { + my ($module) = @_; + grep { $_->{name} eq $module } @SL::InstallationCheck::optional_modules; +} + +sub is_developer { + my ($module) = @_; + grep { $_->{name} eq $module } @SL::InstallationCheck::developer_modules; +} + sub color_text { my ($text) = @_; return color(get_color($text)) . $text . color('reset'); @@ -188,11 +213,13 @@ This module is included in C. Don't worry about it. This module is documented in C to be necessary, or is a dependancy of one of these. Everything alright. -= item !missing +=item !missing These modules are neither core, nor included, nor required. This is ok for developer tools, but should never occur for modules the actual program uses. +=back + =head1 AUTHOR http://www.ledgersmb.org/ - The LedgerSMB team