#!/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::TLUtils; use TeXLive::TLPOBJ; use TeXLive::TLPDB; use Getopt::Long; use Pod::Usage; use File::Path; my $help = 0; TeXLive::TLUtils::process_logging_options(); 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) { # do not check any package starting with 00texlive next if $pkg =~ m/^00texlive/; #next if ($pkg =~ m/^00texlive\.config$/); #next if ($pkg =~ m/^00texlive-installation\.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 occurring in ", @{$wrongdep{$d}}, "\n"; } } } __END__ =head1 NAME check-depend-consistency - check that all depends actually exist as packages =head1 SYNOPSIS check-depend-consistency [OPTION]... =head1 OPTIONS Only the standard options B<-help> and B<-q>, B<-v>, and B<-logfile>=I are accepted; see the C function in L for details. =head1 DESCRIPTION Check consistency of C statements in all TeX Live packages, including collections and schemes. =head1 AUTHORS AND COPYRIGHT This script and its documentation were written for the TeX Live distribution (L) 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: #