Update of /cvsroot/fink/fink/perlmod/Fink
In directory sc8-pr-cvs1:/tmp/cvs-serv20975/perlmod/Fink

Modified Files:
        ChangeLog Engine.pm PkgVersion.pm 
Log Message:
Adding a true purge switch

Index: ChangeLog
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/ChangeLog,v
retrieving revision 1.233
retrieving revision 1.234
diff -u -r1.233 -r1.234
--- ChangeLog   2 Jan 2003 17:32:05 -0000       1.233
+++ ChangeLog   6 Jan 2003 03:31:45 -0000       1.234
@@ -1,6 +1,13 @@
-2003-01-02 Benjamin Reed <[EMAIL PROTECTED]>
+2003-01-05  Justin F. Hallett <[EMAIL PROTECTED]>
 
-       * Services.pm: One-liner fix to get rid of an undefined warning
+        * Engine.pm:  Added sub phase_purge
+
+       * PkgVersion.pm:  Added sub cmd_purge and change fink purge to
+       acctually do a dpkg purge
+
+2003-01-02  Benjamin Reed <[EMAIL PROTECTED]>
+
+       * Services.pm:  One-liner fix to get rid of an undefined warning
 
 2002-12-24  Dave Morrison <[EMAIL PROTECTED]>
 

Index: Engine.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/Engine.pm,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -r1.79 -r1.80
--- Engine.pm   11 Dec 2002 20:32:20 -0000      1.79
+++ Engine.pm   6 Jan 2003 03:31:45 -0000       1.80
@@ -71,7 +71,7 @@
     'unuse' => [\&cmd_remove, 1, 1],
     'remove' => [\&cmd_remove, 1, 1],
     'delete' => [\&cmd_remove, 1, 1],
-    'purge' => [\&cmd_remove, 1, 1],
+    'purge' => [\&cmd_purge, 1, 1],
     'apropos' => [\&cmd_apropos, 0, 0],
     'describe' => [\&cmd_description, 1, 0],
     'description' => [\&cmd_description, 1, 0],
@@ -581,6 +581,29 @@
 
   Fink::PkgVersion::phase_deactivate(@packages);
   Fink::Status->invalidate();
+}
+
+sub cmd_purge {
+  my ($package, @plist, @packages, $answer);
+
+  @plist = &expand_packages(@_);     
+  if ($#plist < 0) {
+    die "no package specified for command 'purge'!\n";
+  }
+
+  foreach $package (@plist) {
+    push @packages, $package->get_name();
+  }
+  print "WARNING: this command will remove the package(s) and remove any\n";
+  print "         global configure files, even if you modified them!\n\n";
+ 
+  $answer = &prompt_boolean("Do you want to continue?", 1);     
+  if (! $answer) {
+    die "Purge not performed\n";
+  } else {
+    Fink::PkgVersion::phase_purge(@packages);
+    Fink::Status->invalidate();
+  }
 }
 
 sub cmd_validate {

Index: PkgVersion.pm
===================================================================
RCS file: /cvsroot/fink/fink/perlmod/Fink/PkgVersion.pm,v
retrieving revision 1.101
retrieving revision 1.102
diff -u -r1.101 -r1.102
--- PkgVersion.pm       23 Dec 2002 07:41:57 -0000      1.101
+++ PkgVersion.pm       6 Jan 2003 03:31:45 -0000       1.102
@@ -1721,6 +1721,21 @@
   Fink::Status->invalidate();
 }
 
+### purge
+
+sub phase_purge {
+  my @packages = @_;
+
+  if (&execute("dpkg --purge @packages")) {
+    if (@packages == 1) {
+      die "can't purge package ".$packages[0]."\n";
+    } else {
+      die "can't batch-purge packages: @packages\n";
+    }
+  }
+  Fink::Status->invalidate();
+}
+
 ### set environment variables according to spec
 
 sub set_env {



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Fink-commits mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-commits

Reply via email to