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