projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
SL::Mailer: Kosmetik für bessere Lesbarkeit (Alignment, Leerzeichen, Einrückung)
[kivitendo-erp.git]
/
scripts
/
find-use.pl
diff --git
a/scripts/find-use.pl
b/scripts/find-use.pl
index
554947d
..
b9220d4
100755
(executable)
--- a/
scripts/find-use.pl
+++ b/
scripts/find-use.pl
@@
-1,10
+1,20
@@
#!/usr/bin/perl -l
#!/usr/bin/perl -l
+
+BEGIN {
+ use FindBin;
+
+ 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.
+}
+
use strict;
#use warnings; # corelist and find throw tons of warnings
use File::Find;
use Module::CoreList;
use SL::InstallationCheck;
use Term::ANSIColor;
use strict;
#use warnings; # corelist and find throw tons of warnings
use File::Find;
use Module::CoreList;
use SL::InstallationCheck;
use Term::ANSIColor;
+use Getopt::Long;
my (%uselines, %modules, %supplied, %requires);
my (%uselines, %modules, %supplied, %requires);
@@
-20,6
+30,8
@@
my (%uselines, %modules, %supplied, %requires);
'Rose::DB::Object::ConventionManager' => 1,
'Rose::DB::Object::Manager' => 1,
'Rose::DB::Object::Metadata' => 1,
'Rose::DB::Object::ConventionManager' => 1,
'Rose::DB::Object::Manager' => 1,
'Rose::DB::Object::Metadata' => 1,
+ 'Rose::DB::Object::Helpers' => 1,
+ 'Rose::DB::Object::Util' => 1,
},
'Rose::Object' => {
'Rose::Object::MakeMethods::Generic' => 1,
},
'Rose::Object' => {
'Rose::Object::MakeMethods::Generic' => 1,
@@
-30,13
+42,34
@@
my (%uselines, %modules, %supplied, %requires);
'Template::Iterator' => 1,
'Template::Plugin' => 1,
'Template::Plugin::Filter' => 1,
'Template::Iterator' => 1,
'Template::Plugin' => 1,
'Template::Plugin::Filter' => 1,
+ 'Template::Plugin::HTML' => 1,
+ 'Template::Stash' => 1,
+ },
+ 'Devel::REPL' => {
+ 'namespace::clean' => 1,
+ },
+ 'Email::MIME' => {
+ 'Email::MIME::Creator' => 1,
},
},
+ 'Test::Harness' => {
+ 'TAP::Parser' => 1,
+ 'TAP::Parser::Aggregator' => 1,
+ },
+ 'Archive::Zip' => {
+ 'Archive::Zip::Member' => 1,
+ }
);
);
+GetOptions(
+ 'files-with-match|l' => \ my $l,
+);
+
+chmod($FindBin::Bin . '/..');
+
find(sub {
return unless /(\.p[lm]|console)$/;
find(sub {
return unless /(\.p[lm]|console)$/;
- # remember modules shipped with
Lx-Office
+ # remember modules shipped with
kivitendo
$supplied{modulize($File::Find::name)}++
if $File::Find::dir =~ m#modules/#;
$supplied{modulize($File::Find::name)}++
if $File::Find::dir =~ m#modules/#;
@@
-81,7
+114,9
@@
for my $useline (keys %uselines) {
my $version = Module::CoreList->first_release($module);
$modules{$module} = { status => $supplied{$module} ? 'included'
: $version ? sprintf '%2.6f', $version
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},
};
: '!missing',
files => $uselines{$useline},
};
@@
-95,6
+130,11
@@
for my $useline (keys %uselines) {
}
}
}
}
+# have all documented modules mentioned here
+$modules{$_->{name}} ||= { status => 'required' } for @SL::InstallationCheck::required_modules;
+$modules{$_->{name}} ||= { status => 'optional' } for @SL::InstallationCheck::optional_modules;
+$modules{$_->{name}} ||= { status => 'developer' } for @SL::InstallationCheck::developer_modules;
+
# build transitive closure for documented dependancies
my $changed = 1;
while ($changed) {
# build transitive closure for documented dependancies
my $changed = 1;
while ($changed) {
@@
-103,7
+143,7
@@
while ($changed) {
for my $dst_module (keys %{ $requires{$src_module} }) {
if ( $modules{$src_module}
&& $modules{$dst_module}
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;
&& $modules{$dst_module}->{status} eq '!missing') {
$modules{$dst_module}->{status} = "required"; # . ", via $src_module";
$changed = 1;
@@
-112,8
+152,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;
$modules{$a}->{status} cmp $modules{$b}->{status}
|| $a cmp $b
} keys %modules;
@@
-128,11
+172,21
@@
sub modulize {
}
}
}
}
-sub is_
document
ed {
+sub is_
requir
ed {
my ($module) = @_;
grep { $_->{name} eq $module } @SL::InstallationCheck::required_modules;
}
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');
sub color_text {
my ($text) = @_;
return color(get_color($text)) . $text . color('reset');
@@
-188,11
+242,13
@@
This module is included in C<modules/*>. Don't worry about it.
This module is documented in C<SL:InstallationCheck> to be necessary, or is a
dependancy of one of these. Everything alright.
This module is documented in C<SL:InstallationCheck> 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.
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
=head1 AUTHOR
http://www.ledgersmb.org/ - The LedgerSMB team
@@
-203,5
+259,3
@@
Sven Schöling E<lt>s.schoeling@linet-services.deE<gt>
Distributed under the terms of the GNU General Public License v2.
=cut
Distributed under the terms of the GNU General Public License v2.
=cut
-
-