summaryrefslogtreecommitdiff
path: root/Master/setuptl/TLPM/uninst.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Master/setuptl/TLPM/uninst.pm')
-rw-r--r--Master/setuptl/TLPM/uninst.pm117
1 files changed, 0 insertions, 117 deletions
diff --git a/Master/setuptl/TLPM/uninst.pm b/Master/setuptl/TLPM/uninst.pm
deleted file mode 100644
index b8b8f54d5ef..00000000000
--- a/Master/setuptl/TLPM/uninst.pm
+++ /dev/null
@@ -1,117 +0,0 @@
-# This file belongs to TLPM v2.21, TeX Live Package Manager
-# Public Domain, P.Jackowski@gust.org.pl
-
-# uninst <pkg> [-rjF] [dir]
-# uninstall given package respecting dependencies
-
-sub uninst
-{
- my ($arg,$pkg,@pkg_list);
- local $tl_target_new;
- local ($force,$Force) = (0,0);
- local $uninst_method = \&uninst_all;
- while(defined($arg = shift))
- {
- $arg eq '' and next
- or &no_opt($arg) and push(@pkg_list,$arg)
- or &is_opt($arg,'j','justone') and $uninst_method = \&uninst_one
- or &is_opt($arg,'r','recurse') and $uninst_method = \&uninst_all
- or &is_opt($arg,'i','ignore') and $force = 1
- or &is_opt($arg,'I','Ignore') and ($Force,$force) = (1,1)
- or &is_opt($arg,'d','directory') and do {$tl_target_new = shift;1}
- or &is_opt($arg,'h','help') and return $heeelp -> ('uninst')
- or &rem_opt($arg) and return $error{'wrong_opt'} -> ($arg,'uninst --help');
- }
- return $error{'pkg_unspec'} -> () unless @pkg_list;
- &read_target();
- return if &open_log();
- foreach $pkg (@pkg_list)
- {
- &is_pkg($pkg,$target_pkges) or $error{'pkg_not_inst'} -> ($pkg) and next;
- $uninst_method -> ($pkg);
- }
- &close_log;
-}
-
-sub uninst_all
-{
- my $pkg = shift;
- my $val;
- local %uninst_pkges = map {($_,undef)} &get_pkg_requires_all($pkg,$target_pkges);
- $uninst_pkges{$pkg} = undef;
- &uninst_next($pkg);
- unless($Force){$force = $false}
- while(($pkg,$val) = each %uninst_pkges)
- {
- next if defined $val;
- &uninst_next($pkg);
- }
-}
-
-sub uninst_one
-{
- my $pkg = shift;
- local $uninst_pkges{$pkg} = undef;
- &uninst_next($pkg);
-}
-
-sub uninst_next
-{
- my $pkg = shift;
- if($force)
- {
- &uninst_pkg($pkg);
- }
- else
- {
- &try_uninst_pkg($pkg);
- }
-}
-
-sub uninst_pkg
-{
- my $pkg = shift;
- $messf -> ($row_fmt,$pkg);
- &rem_files($pkg);
- $messf -> ("%s\n","uninstalled");
- $uninst_pkges{$pkg} = 1;
- delete $target_pkges -> {$pkg};
-}
-
-sub leave_pkg
-{
- my $pkg = shift;
- $messf -> ($row_fmt . "required by %s\n",$pkg,join(",\n" . ' ' x ($row_skip + 12),@_));
- $uninst_pkges{$pkg} = 0;
-}
-
-
-sub rem_files
-{
- map {unlink "$tl_target$chr_dirsep$_"} &get_pkg_contains($_[0],$target_pkges);
-}
-
-sub try_uninst_pkg
-{
- my $pkg = shift;
- return(0) unless exists $uninst_pkges{$pkg};
- return $uninst_pkges{$pkg} if defined $uninst_pkges{$pkg};
- my $try = 1;
- my @req = &get_pkg_belongs($pkg,$target_pkges);
- foreach(@req)
- {
- $try *= &try_uninst_pkg($_);
- }
- if($try)
- {
- &uninst_pkg($pkg);
- return(1);
- }
- else
- {
- &leave_pkg($pkg,grep {$uninst_pkges{$_} == 0} @req);
- return(0);
- }
-}
-
-1;