summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2007-12-26 23:55:30 +0000
committerNorbert Preining <preining@logic.at>2007-12-26 23:55:30 +0000
commitd1a5122cb50a2eb322e78d0677ccdd02c5e71bf8 (patch)
tree501c4612913674166871b2f489546ae8cba7d50d
parente21f84b799baa483f5361ef90926ba4fb96997f8 (diff)
add check-file-coverage
git-svn-id: svn://tug.org/texlive/trunk@5929 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xMaster/tlpkg/bin/check-file-coverage113
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: #