#!/bin/perl use English; use Getopt::Long; use FileHandle; use File::Basename; use File::Find; use Cwd; $_=`kpsewhich -expand-var '\$TEXMFDIST'`; chop; print "texmf is rooted at $_\n"; chdir $_ || die "cannot change directory to [$_]\n"; &Check("tex"); &Check("tex/plain"); &Check("tex/generic"); &Check("tex/latex"); &Check("doc"); &Check("source"); &Check("fonts"); sub Check{ (my $Dir) = @_; print "\nDUPLICATES in $Dir\n"; find(\&lfiles,$Dir); foreach $i (sort keys %Files) { $_ = $Files{$i}; if (/ /) { print "$i: $_\n"; @d=split(" ",$_,); foreach (@d) { system "ls -l $_/$i >> /tmp/$$.log"; } open (L,"/tmp/$$.log") || die "where is /tmp/$$.log?"; while () { print " $_";} close L; unlink "/tmp/$$.log"; } $Files{$i}=""; } } sub lfiles { if (-f) { if (/README/) {} elsif (/MANIFEST/) {} elsif (/TODO/) {} elsif (/makefile/) {} elsif (/Makefile/) {} elsif (/READ.ME/) {} elsif (/readme/) {} elsif (/patch/) {} elsif (/Change/) {} elsif (/CHANGE/) {} elsif (/FILE/) {} elsif (/NOTE/) {} elsif (/INSTALL/) {} elsif (/install\.*/) {} elsif (/NEWS/) {} elsif (/CATALOG/) {} elsif (/catalog/) {} elsif (/changes\.*/) {} elsif (/ANNOUNCE/) {} elsif (/COPY/) {} elsif (/node.*html/) {} elsif (/index.html/) {} elsif (/example.*tex/) {} elsif (/example.*dvi/) {} elsif (/sample.*tex/) {} elsif (/sample.*dvi/) {} elsif (/\.pk$/) {} elsif (/\.gif$/) {} elsif (/\.inl$/) {} else { $dir=$File::Find::dir; if ( $Files{$_} ne "") { $Files{$_} .= " $dir"; } else { $Files{$_}=$dir; }} } }