diff options
Diffstat (limited to 'Master/tlpkg/bin/tlpkginfo')
-rwxr-xr-x | Master/tlpkg/bin/tlpkginfo | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/Master/tlpkg/bin/tlpkginfo b/Master/tlpkg/bin/tlpkginfo index 2f65d7b30ea..a848cbc66bf 100755 --- a/Master/tlpkg/bin/tlpkginfo +++ b/Master/tlpkg/bin/tlpkginfo @@ -38,29 +38,30 @@ sub tlpkgrevision { # stdout: rev# exit code: 0 # (no newline on stdout) # - # tlpkginfo -revision <pkg> [ <tltree> ] + # tlpkginfo -revision <pkg> [...] require TeXLive::TLPOBJ; require TeXLive::TLPDB; - die "need at least pkg name as argument!" if ($#ARGV < 1); - if ($#ARGV == 2) { - $root = $ARGV[2]; - } else { - $root = "$mydir/../.."; - } + shift @ARGV; # the --revision option + die "need at least one pkg name as argument" if (@ARGV < 1); + my $root = "$mydir/../.."; my $tlpdb = TeXLive::TLPDB->new ("root" => $root); if (!defined($tlpdb)) { printf STDERR "$0: Cannot find tlpdb in TL root dir $root\n"; - print "-1"; + print "-1\n"; exit(1); } - my $pkg = $tlpdb->get_package($ARGV[1]); - if (!defined($pkg)) { - printf STDERR "Cannot find package $ARGV[1] in TL tree of $root\n"; - print "0"; - exit(1); + my $bad = 0; + for my $pkgname (@ARGV) { + my $pkg = $tlpdb->get_package($pkgname); + if (!defined($pkg)) { + warn "$0: cannot find package in TL tree $root: $pkgname\n"; + $bad = 1; + } else { + print "$pkgname " if (@ARGV > 1); # if more than one arg, print name + print $pkg->revision, "\n"; + } } - print $pkg->revision; - exit(0); + exit $bad; } |