diff options
author | Norbert Preining <preining@logic.at> | 2008-10-29 00:24:42 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2008-10-29 00:24:42 +0000 |
commit | 73643db0802a9d08263d2a70b7069ecf5a70024c (patch) | |
tree | 8a5cdea608e6280ba4affc60fe24722fe9ba8058 /Master/tlpkg/bin | |
parent | 3a74f0c42fff01b8b7104563765b0395b49fb784 (diff) |
factor out auto patterns to a separate tlpsrc file
git-svn-id: svn://tug.org/texlive/trunk@11100 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/bin')
-rwxr-xr-x | Master/tlpkg/bin/tlpsrc2tlpdb | 68 |
1 files changed, 66 insertions, 2 deletions
diff --git a/Master/tlpkg/bin/tlpsrc2tlpdb b/Master/tlpkg/bin/tlpsrc2tlpdb index 4d7960eeb1d..dcc857cad14 100755 --- a/Master/tlpkg/bin/tlpsrc2tlpdb +++ b/Master/tlpkg/bin/tlpsrc2tlpdb @@ -31,6 +31,7 @@ my $help = 0; my $opt_nobinsplit = 0; my $opt_winwarning; my $opt_fromfiles = 0; +my $opt_noautopatterns = 0; TeXLive::TLUtils::process_logging_options(); GetOptions( @@ -38,6 +39,7 @@ GetOptions( "master=s" => \$opt_master, # location of the TL tree "catalogue=s" => \$opt_catalogue, # location of the TeX Catalogue "no-bin-split!" => \$opt_nobinsplit, + "no-autopatterns" => \$opt_noautopatterns, "from-files" => \$opt_fromfiles, "with-win-pattern-warning" => \$opt_winwarning, "help|?" => \$help) or pod2usage(1); @@ -63,9 +65,66 @@ sub main $tlc = TeXLive::TeXCatalogue->new ("location" => $opt_catalogue); } + my $tlpsrc_dir = "$opt_master/tlpkg/tlpsrc"; + + # get the default patterns + my %autopatterns; + if (! $opt_noautopatterns) { + my $apfile = "$tlpsrc_dir/00texlive.autopatterns.tlpsrc"; + if (! -r $apfile) { + if (! $opt_noautopatterns) { + tlwarn ("No autopatterns tlpsrc 00texlive.autopatterns.tlpsrc found.\n"); + tlwarn ("Stopping here. If you want to continue either add the above file\n"); + tlwarn ("or call tlpsrc with --no-autopatterns.\n"); + exit 1; + } + } + my $tlsrc = new TeXLive::TLPSRC; + $tlsrc->from_file ( $apfile ); + if ($tlsrc->binpatterns) { + for my $p ($tlsrc->binpatterns) { + my ($cat, @rest) = split ' ', $p; + push @{$autopatterns{$cat}{"bin"}}, join(' ', @rest); + } + } + if ($tlsrc->srcpatterns) { + for my $p ($tlsrc->srcpatterns) { + my ($cat, @rest) = split ' ', $p; + push @{$autopatterns{$cat}{"src"}}, join(' ', @rest); + } + } + if ($tlsrc->docpatterns) { + for my $p ($tlsrc->docpatterns) { + my ($cat, @rest) = split ' ', $p; + push @{$autopatterns{$cat}{"doc"}}, join(' ', @rest); + } + } + if ($tlsrc->runpatterns) { + for my $p ($tlsrc->runpatterns) { + my ($cat, @rest) = split ' ', $p; + push @{$autopatterns{$cat}{"run"}}, join(' ', @rest); + } + } + + for my $cat (keys %autopatterns) { + debug ("Category $cat\n"); + for my $d (@{$autopatterns{$cat}{"bin"}}) { + debug ("Found auto bin pattern $d\n"); + } + for my $d (@{$autopatterns{$cat}{"src"}}) { + debug ("Found auto src pattern $d\n"); + } + for my $d (@{$autopatterns{$cat}{"doc"}}) { + debug ("Found auto doc pattern $d\n"); + } + for my $d (@{$autopatterns{$cat}{"run"}}) { + debug ("Found auto run pattern $d\n"); + } + } + } # end of if (! $opt_noautopatterns) + # if we're regenerating the whole thing, get all our tlpsrc files. if ($opt_all) { - my $tlpsrc_dir = "$opt_master/tlpkg/tlpsrc"; chdir ($tlpsrc_dir) || die "chdir($tlpsrc_dir) failed: $!"; @ARGV = glob ("*.tlpsrc"); } @@ -82,11 +141,16 @@ sub main my $tldb = TeXLive::TLPDB->new; my $src_count = 0; foreach my $f (@ARGV) { + next if ($f =~ m/^00texlive\.autopatterns/); $src_count++ if $opt_all; my $tlsrc = new TeXLive::TLPSRC; $tlsrc->from_file ($f); - my $tlp = $tlsrc->make_tlpobj ($tltree); + my $patternref; + if (defined($autopatterns{$tlsrc->category})) { + $patternref = $autopatterns{$tlsrc->category}; + } + my $tlp = $tlsrc->make_tlpobj ($tltree, $autopatterns{$tlsrc->category}); (my $base_f = $f) =~ s/\.tlpsrc$//; warn "$f: package name " . $tlp->name . " does not match filename\n" |