texlive[61887] Master/tlpkg/bin/tl-print-dependencies: Add

commits+preining at tug.org commits+preining at tug.org
Sat Feb 5 07:45:52 CET 2022


Revision: 61887
          http://tug.org/svn/texlive?view=revision&revision=61887
Author:   preining
Date:     2022-02-05 07:45:52 +0100 (Sat, 05 Feb 2022)
Log Message:
-----------
Add tl-print-dependencies

Added Paths:
-----------
    trunk/Master/tlpkg/bin/tl-print-dependencies

Added: trunk/Master/tlpkg/bin/tl-print-dependencies
===================================================================
--- trunk/Master/tlpkg/bin/tl-print-dependencies	                        (rev 0)
+++ trunk/Master/tlpkg/bin/tl-print-dependencies	2022-02-05 06:45:52 UTC (rev 61887)
@@ -0,0 +1,66 @@
+#!/usr/bin/env perl
+# $Id$
+# Originally written by Norbert Preining and Karl Berry, 2015.  Public domain.
+# 
+# Recursively give dependencies of a given package
+
+my $vc_id = '$Id$';
+my $Master;
+
+BEGIN {
+  chomp ($mydir = `dirname $0`);  # we are in Master/tlpkg/bin
+  unshift (@INC, "$mydir/..");
+}
+
+use TeXLive::TLPDB;
+use TeXLive::TLUtils;
+
+my $prg = TeXLive::TLUtils::basename($0);
+
+my @print_packages;
+my $tlpdb;
+my %done;
+
+exit (&main());
+
+

+sub main {
+  chomp ($Master = `cd $mydir/../.. && pwd`);
+  $tlpdb = TeXLive::TLPDB->new ("root" => $Master);
+  die "Cannot find tlpdb in $Master!" unless defined $tlpdb;
+
+  @print_packages = @ARGV;
+  print_next();
+  exit(0);
+}
+
+sub print_next {
+  return if (!@print_packages);
+  my $pkg = shift @print_packages;
+  # skip packages we have already printed
+  if (!$done{$pkg}) {
+    my $tlp = $tlpdb->get_package($pkg);
+    if ($tlp) {
+      # mark as done
+      $done{$pkg} = 1;
+      my @deps = $tlp->depends;
+      # drop .ARCH deps
+      @deps = grep(!/\.ARCH$/, @deps);
+      # only print a line when there are deps
+      if (@deps) {
+        push @print_packages, @deps;
+        print "$pkg: @deps\n";
+      }
+    } else {
+      print "$pkg: MISSING\n";
+    }
+  }
+  print_next();
+}
+
+# Local Variables:
+# perl-indent-level: 2
+# tab-width: 2
+# indent-tabs-mode: nil
+# End:
+# vim: sw=2 expandtab


Property changes on: trunk/Master/tlpkg/bin/tl-print-dependencies
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property


More information about the tex-live-commits mailing list.