summaryrefslogtreecommitdiff
path: root/Master/tlpkg
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2007-12-27 08:50:47 +0000
committerNorbert Preining <preining@logic.at>2007-12-27 08:50:47 +0000
commita0af54a429e157c99385e3b0f2790f38f5232000 (patch)
tree3c6bff7f2c3d037c4df35633d439e427b2d010b3 /Master/tlpkg
parentfafeb83ba2a15b2f4566dc76ec0a2e86a30f7dd1 (diff)
add a depend check program
git-svn-id: svn://tug.org/texlive/trunk@5946 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg')
-rwxr-xr-xMaster/tlpkg/bin/check-depend-consistency94
1 files changed, 94 insertions, 0 deletions
diff --git a/Master/tlpkg/bin/check-depend-consistency b/Master/tlpkg/bin/check-depend-consistency
new file mode 100755
index 00000000000..46c31d43bf6
--- /dev/null
+++ b/Master/tlpkg/bin/check-depend-consistency
@@ -0,0 +1,94 @@
+#!/usr/bin/env perl
+# $Id: check-depend-consistency 0 2007-10-14 20:32:44Z karl $
+# Copyright 2007 Norbert Preining
+# This file is licensed under the GNU General Public License version 2
+# or any later version.
+#
+# Check that all package are contained in some collection.
+
+BEGIN {
+ $^W = 1;
+ ($mydir = $0) =~ s,/[^/]*$,,;
+ unshift (@INC, "$mydir/..");
+}
+
+our $mydir;
+
+use strict;
+
+use TeXLive::TLConfig;
+use TeXLive::TLPOBJ;
+use TeXLive::TLPDB;
+use Getopt::Long;
+use Pod::Usage;
+use File::Path;
+
+my $help = 0;
+
+GetOptions("help|?" => \$help) or pod2usage(1);
+pod2usage(-exitstatus => 0, -verbose => 2) if $help;
+
+exit (&main ());
+
+sub main
+{
+ # get the db.
+ chomp (my $Master = `cd $mydir/../.. && pwd`); # xx TLPDB should default
+ my $tlpdb = TeXLive::TLPDB->new ("root" => "$Master");
+ die("Cannot find tlpdb in $Master!\n") unless defined($tlpdb);
+ my %presentpkg;
+ my %wrongdep;
+ for my $pkg ($tlpdb->list_packages) {
+ $presentpkg{$pkg} = 1;
+ }
+ for my $pkg ($tlpdb->list_packages) {
+ next if ($pkg =~ m/^00texlive\.config$/);
+ for my $d ($tlpdb->get_package($pkg)->depends) {
+ next if ($d =~ m/\.ARCH$/);
+ if (!defined($presentpkg{$d})) {
+ push @{$wrongdep{$d}}, $pkg;
+ }
+ }
+ }
+ if (keys %wrongdep) {
+ print "DEPENDS WITHOUT PACKAGES:\n";
+ for my $d (keys %wrongdep) {
+ print "$d occuring in ", @{$wrongdep{$d}}, "\n";
+ }
+ }
+}
+
+
+
+__END__
+
+=head1 NAME
+
+check-depend-consistency - check that all depends actually exist as packages
+
+=head1 SYNOPSIS
+
+check-depend-consistency
+
+=head1 OPTIONS
+
+There are no options bug C<-help>.
+
+=head1 DESCRIPTION
+
+See above
+
+=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: #