#!/usr/bin/perl -w use English; use strict; if (not defined $ARGV[0] or not chdir $ARGV[0]) { print "\nUsage: $0 rootdir\n\n"; print "E.g.: $0 build/ref0818-2.1.0-DEV-x86-reference-expert\n\n"; exit 1; } my %baddirs; my %badcount; my %badpkgs; while () { /.*\/(\S+)/; my $p = $1; my %dirdep; my %filedep; open P, $_ or die $!; while (

) { chomp; my ($d, $f) = split /: /; next if $d =~ /-dirtree$/; if (-d $f) { $dirdep{$d}{$f} = 1; } else { $filedep{$d} = 1; } } close P; foreach (keys %filedep) { delete $dirdep{$_}; } foreach my $d (keys %dirdep) { foreach (keys %{$dirdep{$d}}) { $baddirs{$d}{$_}++; $badpkgs{$d}{$p}++; } $badcount{$d}++; } } foreach my $d (keys %badcount) { print "\nFound pure dir dependencies to $d ($badcount{$d}):\n"; foreach (keys %{$badpkgs{$d}}) { print "\tpkg\t$badpkgs{$d}{$_}\t$_\n"; } foreach (keys %{$baddirs{$d}}) { print "\tdir\t$baddirs{$d}{$_}\t$_\n"; } } print "\n"; exit 0;