diff options
author | Norbert Preining <preining@logic.at> | 2007-12-27 08:50:47 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2007-12-27 08:50:47 +0000 |
commit | a0af54a429e157c99385e3b0f2790f38f5232000 (patch) | |
tree | 3c6bff7f2c3d037c4df35633d439e427b2d010b3 /Master/tlpkg/bin/check-depend-consistency | |
parent | fafeb83ba2a15b2f4566dc76ec0a2e86a30f7dd1 (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/bin/check-depend-consistency')
-rwxr-xr-x | Master/tlpkg/bin/check-depend-consistency | 94 |
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: # |