diff options
author | Norbert Preining <preining@logic.at> | 2007-12-26 23:55:30 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2007-12-26 23:55:30 +0000 |
commit | d1a5122cb50a2eb322e78d0677ccdd02c5e71bf8 (patch) | |
tree | 501c4612913674166871b2f489546ae8cba7d50d | |
parent | e21f84b799baa483f5361ef90926ba4fb96997f8 (diff) |
add check-file-coverage
git-svn-id: svn://tug.org/texlive/trunk@5929 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-x | Master/tlpkg/bin/check-file-coverage | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/Master/tlpkg/bin/check-file-coverage b/Master/tlpkg/bin/check-file-coverage new file mode 100755 index 00000000000..3bf475c5e83 --- /dev/null +++ b/Master/tlpkg/bin/check-file-coverage @@ -0,0 +1,113 @@ +#!/usr/bin/env perl +# $Id: check-file-coverage 5846 2007-12-23 21:38:57Z preining $ +# Copyright 2007 Norbert Preining +# This file is licensed under the GNU General Public License version 2 +# or any later version. +# +# check the file coverage of a TLTREE wrt to a texlive.tlpdb + +BEGIN { + $^W = 1; + chomp ($mydir = `dirname $0`); + unshift (@INC, "$mydir/.."); +} + +use strict; + +use TeXLive::TLConfig; +use TeXLive::TLPSRC; +use TeXLive::TLPOBJ; +use TeXLive::TLPDB; +use TeXLive::TLTREE; +use Getopt::Long; +use Pod::Usage; +use File::Path; + +chomp (my $opt_master = `cd $::mydir/../.. && pwd`); +our $opt_debug = 0; +my $help = 0; + +GetOptions( + "master=s" => \$opt_master, # location of the TL tree + "debug!", "help|?" => \$help) or pod2usage(1); + +pod2usage(-exitstatus => 0, -verbose => 2) if $help; + +exit (&main ()); + + +sub main +{ + if (! -d $opt_master) { + die "$0: Master $opt_master not a directory, goodbye.\n"; + } + + # first we check for multiple included files using simple shell magic + print "Multiple included files:\n"; + print `grep '^ ' $opt_master/tlpkg/texlive.tlpdb | awk '{print"\t"\$1}' | sort | uniq -d`; + + warn "$0: reading Master tree $opt_master, that takes some time ...\n"; + my $tltree = TeXLive::TLTREE->new( "svnroot" => $opt_master ); + $tltree->init_from_svn; + + my %tltreefiles = %{$tltree->{'_allfiles'}}; + my @tlpdbfiles = `grep '^ ' $opt_master/tlpkg/texlive.tlpdb | awk '{print\$1}'`; + chomp(@tlpdbfiles); + my %tlpdbf; + for my $f (@tlpdbfiles) { + $tlpdbf{$f} = 1; + } + my @nothit; + for my $f (keys %tltreefiles) { + if (!defined($tlpdbf{$f})) { + push @nothit, $f; + } + } + if (@nothit) { + print "NOT COVERED FILES:\n"; + for my $f (sort @nothit) { print "\t$f\n"; } + } + return 0; +} + +__END__ + +=head1 NAME + +check-file-coverage - check file coverage TLTREE vs. texlive.tlpdb + +=head1 SYNOPSIS + +check-file-coverage [OPTION]... + +=head1 OPTIONS + +=over 8 + +=item B<-master> I<Master_dir> +The location given by B<-master> must point to a valid svn repository +of TeX Live's Master direcory. Defaults to C<../..> of C<$0>. + +=back + +The standard options C<-help> and C<-debug> are also accepted. +See the tlpfiles documentation for details. + +=head1 DESCRIPTION + +Missing + +=head1 AUTHORS AND COPYRIGHT + +This script and its documentation were written for the TeX Live +distribution (L<http://tug.org/texlive>) and both are licensed under the +GNU General Public License Version 2 or later. + +=cut + +### Local Variables: +### perl-indent-level: 2 +### tab-width: 2 +### indent-tabs-mode: nil +### End: +# vim:set tabstop=2 expandtab: # |