summaryrefslogtreecommitdiff
path: root/Master/tlpkg/bin
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2008-10-29 00:24:42 +0000
committerNorbert Preining <preining@logic.at>2008-10-29 00:24:42 +0000
commit73643db0802a9d08263d2a70b7069ecf5a70024c (patch)
tree8a5cdea608e6280ba4affc60fe24722fe9ba8058 /Master/tlpkg/bin
parent3a74f0c42fff01b8b7104563765b0395b49fb784 (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-xMaster/tlpkg/bin/tlpsrc2tlpdb68
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"