texlive[45837] Master/texmf-dist/scripts/texlive/tlmgr.pl: tlmgr
commits+preining at tug.org
commits+preining at tug.org
Fri Nov 17 02:29:05 CET 2017
Revision: 45837
http://tug.org/svn/texlive?view=revision&revision=45837
Author: preining
Date: 2017-11-17 02:29:05 +0100 (Fri, 17 Nov 2017)
Log Message:
-----------
tlmgr remove: support machine readable
Modified Paths:
--------------
trunk/Master/texmf-dist/scripts/texlive/tlmgr.pl
Modified: trunk/Master/texmf-dist/scripts/texlive/tlmgr.pl
===================================================================
--- trunk/Master/texmf-dist/scripts/texlive/tlmgr.pl 2017-11-17 01:17:46 UTC (rev 45836)
+++ trunk/Master/texmf-dist/scripts/texlive/tlmgr.pl 2017-11-17 01:29:05 UTC (rev 45837)
@@ -541,7 +541,7 @@
# --machine-readable is only supported by update.
if ($::machinereadable &&
- $action ne "update" && $action ne "install" && $action ne "option" && $action ne "shell") {
+ $action ne "update" && $action ne "install" && $action ne "option" && $action ne "shell" && $action ne "remove") {
tlwarn("$prg: --machine-readable output not supported for $action\n");
}
@@ -1120,6 +1120,20 @@
}
}
@packs = keys %packs;
+
+ my %sizes = %{$localtlpdb->sizes_of_packages(
+ $localtlpdb->option("install_srcfiles"),
+ $localtlpdb->option("install_docfiles"), undef, @packs)};
+ defined($sizes{'__TOTAL__'}) || ($sizes{'__TOTAL__'} = 0);
+ my $totalsize = $sizes{'__TOTAL__'};
+ my $totalnr = $#packs;
+ my $currnr = 1;
+ my $starttime = time();
+ my $donesize = 0;
+
+ print "total-bytes\t$sizes{'__TOTAL__'}\n" if $::machinereadable;
+ print "end-of-header\n" if $::machinereadable;
+
foreach my $pkg (sort @packs) {
my $tlp = $localtlpdb->get_package($pkg);
next if defined($already_removed{$pkg});
@@ -1127,6 +1141,9 @@
info("$pkg: package not present, cannot remove\n");
$ret |= $F_WARNING;
} else {
+ my ($estrem, $esttot) = TeXLive::TLUtils::time_estimate($totalsize,
+ $donesize, $starttime);
+
# in the first round we only remove collections, nothing else
# but removing collections will remove all dependencies, too
# save the information of which packages have already been removed
@@ -1133,11 +1150,18 @@
# into %already_removed.
if ($tlp->category eq "Collection") {
my $foo = 0;
- info ("$prg: removing $pkg\n");
+ if ($::machinereadable) {
+ machine_line($pkg, "d", $tlp->revision, "-", $sizes{$pkg}, $estrem, $esttot);
+ } else {
+ # info ("$prg: removing $pkg\n");
+ info("[$currnr/$totalnr, $estrem/$esttot] remove: $pkg\n");
+ }
if (!$opts{"dry-run"}) {
$foo = backup_and_remove_package($pkg, $autobackup);
logpackage("remove: $pkg");
}
+ $currnr++;
+ $donesize += $sizes{$pkg};
if ($foo) {
# removal was successful, so the return is at least 0x0001 mktexlsr
# remove dependencies, too
@@ -1153,8 +1177,19 @@
}
}
foreach my $pkg (sort @more_removal) {
+ my $tlp = $localtlpdb->get_package($pkg);
if (!defined($already_removed{$pkg})) {
- info ("$prg: removing package $pkg\n");
+ my ($estrem, $esttot) = TeXLive::TLUtils::time_estimate($totalsize,
+ $donesize, $starttime);
+ # info ("$prg: removing package $pkg\n");
+ if ($::machinereadable) {
+ machine_line($pkg, "d", $tlp->revision, "-", $sizes{$pkg}, $estrem, $esttot);
+ } else {
+ # info ("$prg: removing $pkg\n");
+ info("[$currnr/$totalnr, $estrem/$esttot] remove: $pkg\n");
+ }
+ $currnr++;
+ $donesize += $sizes{$pkg};
if (!$opts{"dry-run"}) {
if (backup_and_remove_package($pkg, $autobackup)) {
# removal was successful
@@ -1164,6 +1199,7 @@
}
}
}
+ print "end-of-updates\n" if $::machinereadable;
if ($opts{"dry-run"}) {
# stop here, don't do any postinstall actions
return ($ret | $F_NOPOSTACTION);
@@ -1171,9 +1207,11 @@
$localtlpdb->save;
my @foo = sort keys %already_removed;
if (@foo) {
- info("$prg: ultimately removed these packages: @foo\n");
+ info("$prg: ultimately removed these packages: @foo\n")
+ if (!$::machinereadable);
} else {
- info("$prg: no packages removed.\n");
+ info("$prg: no packages removed.\n")
+ if (!$::machinereadable);
}
}
return ($ret);
More information about the tex-live-commits
mailing list