diff options
author | Norbert Preining <preining@logic.at> | 2008-10-06 23:52:06 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2008-10-06 23:52:06 +0000 |
commit | a75ea875cafc75a740a6f4d68466cd7f194eba5b (patch) | |
tree | e2cfb7877eb359d5273d1b7f59896fce11fdee4c /Master/tlpkg/bin/tl-update-containers | |
parent | 2b648d13b593d12486ffa8ce64fc762af955b21a (diff) |
make tl-update-containers honor the critical packages also on removals
git-svn-id: svn://tug.org/texlive/trunk@10874 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/bin/tl-update-containers')
-rwxr-xr-x | Master/tlpkg/bin/tl-update-containers | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/Master/tlpkg/bin/tl-update-containers b/Master/tlpkg/bin/tl-update-containers index 9dc569e1576..918bfc826de 100755 --- a/Master/tlpkg/bin/tl-update-containers +++ b/Master/tlpkg/bin/tl-update-containers @@ -253,7 +253,25 @@ sub main } # next we remove those containers which have been gone! - for my $op (@removepacks) { + REMOVEPACK: for my $op (@removepacks) { + foreach my $manualpkgre (@critical_pkg_list) { + # we match the initial string of the package name, so that all the + # .arch packages are skipped, too + if ($op =~ m/^$manualpkgre/) { + if ($opt_all || $opt_recreate) { + tlwarn ("$0: removing critical $op due to -all\n"); + last; # of the manualpkgre checks + + } else { + tlwarn ("$0: skipping removal of critical $op\n"); + # the following line skips all other regexp checks on critical + # packages and skips everything below this (the part which + # actually builds the containers) and continues with the next + # package (the PACKS: label above). + next REMOVEPACK; + } + } + } info("$op has disappeared, removing its containers\n"); `rm $opt_containerdir/$op.*`; $nettlpdb->remove_package($op); |