summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>2004-11-27 11:36:17 +0000
committerMarc Espie <espie@cvs.openbsd.org>2004-11-27 11:36:17 +0000
commit4e856b2e517446073ed13ca7b3a7d89fa4c23e91 (patch)
treeb3cfc504986e8db66891a9b8e5534259bcc7b702
parent7ee77913543e58e75d18b0bb5bb7dabcba6b5e3e (diff)
be verbose if !extra, tell user what they should do manually.
-rw-r--r--usr.sbin/pkg_add/OpenBSD/Delete.pm42
-rw-r--r--usr.sbin/pkg_add/OpenBSD/SharedItems.pm38
2 files changed, 46 insertions, 34 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/Delete.pm b/usr.sbin/pkg_add/OpenBSD/Delete.pm
index ce6a7fcd8af..b491f66dfde 100644
--- a/usr.sbin/pkg_add/OpenBSD/Delete.pm
+++ b/usr.sbin/pkg_add/OpenBSD/Delete.pm
@@ -1,5 +1,5 @@
# ex:ts=8 sw=4:
-# $OpenBSD: Delete.pm,v 1.11 2004/11/21 13:32:18 espie Exp $
+# $OpenBSD: Delete.pm,v 1.12 2004/11/27 11:36:16 espie Exp $
#
# Copyright (c) 2003-2004 Marc Espie <espie@openbsd.org>
#
@@ -189,7 +189,7 @@ sub delete
$state->{groups_to_rm} = {} unless defined $state->{groups_to_rm};
my $h = $state->{groups_to_rm};
- $h->{$name} = 1;
+ $h->{$name} = $state->{pkgname};
}
package OpenBSD::PackingElement::DirBase;
@@ -284,23 +284,21 @@ sub delete
}
my $origname = $state->{destdir}.$orig->fullname();
if (! -e $realname) {
- print "File $realname does not exist\n";
+ $state->print("File $realname does not exist\n");
return;
}
if (! -f $realname) {
- print "File $realname is not a file\n";
+ $state->print("File $realname is not a file\n");
return;
}
if (!defined $orig->{md5}) {
- print "Problem: file $name does not have an md5 checksum\n";
- print "NOT deleting: $realname\n";
$state->print("Couldn't delete $realname (no md5)\n");
return;
}
if ($state->{quick}) {
unless ($state->{extra}) {
- print "NOT deleting file $realname\n";
+ $state->print("You should also remove $realname\n");
return;
}
} else {
@@ -308,9 +306,8 @@ sub delete
if ($md5 eq $orig->{md5}) {
print "File $realname identical to sample\n" if $state->{not} or $state->{verbose};
} else {
- print "File $realname NOT identical to sample\n";
unless ($state->{extra}) {
- print "NOT deleting $realname\n";
+ $state->print("You should also remove $realname (which was modified)\n");
return;
}
}
@@ -369,16 +366,19 @@ package OpenBSD::PackingElement::Extra;
sub delete
{
my ($self, $state) = @_;
- return unless $state->{extra};
my $name = $self->fullname();
my $realname = $state->{destdir}.$name;
- if ($state->{beverbose}) {
+ if ($state->{beverbose} && $state->{extra}) {
print "deleting extra file: $realname\n";
}
return if $state->{not};
return unless -e $realname;
- unlink($realname) or
- print "problem deleting extra file $realname\n";
+ if ($state->{extra}) {
+ unlink($realname) or
+ print "problem deleting extra file $realname\n";
+ } else {
+ $state->print("You should also remove $realname\n");
+ }
}
package OpenBSD::PackingElement::Extradir;
@@ -386,8 +386,12 @@ sub delete
{
my ($self, $state) = @_;
return unless $state->{extra};
- return unless -e $state->{destdir}.$self->fullname();
- $self->SUPER::delete($state);
+ my $realname = $state->{destdir}.$self->fullname();
+ if ($state->{extra}) {
+ $self->SUPER::delete($state);
+ } else {
+ $state->print("You should also remove the directory $realname\n");
+ }
}
package OpenBSD::PackingElement::ExtraUnexec;
@@ -395,9 +399,11 @@ package OpenBSD::PackingElement::ExtraUnexec;
sub delete
{
my ($self, $state) = @_;
- return unless $state->{extra};
-
- $self->run($state);
+ if ($state->{extra}) {
+ $self->run($state);
+ } else {
+ $state->print("You should also run ", $self->{expanded}, "\n");
+ }
}
package OpenBSD::PackingElement::Lib;
diff --git a/usr.sbin/pkg_add/OpenBSD/SharedItems.pm b/usr.sbin/pkg_add/OpenBSD/SharedItems.pm
index bfac3645fba..31a56f170a8 100644
--- a/usr.sbin/pkg_add/OpenBSD/SharedItems.pm
+++ b/usr.sbin/pkg_add/OpenBSD/SharedItems.pm
@@ -1,5 +1,5 @@
# ex:ts=8 sw=4:
-# $OpenBSD: SharedItems.pm,v 1.3 2004/11/11 11:16:40 espie Exp $
+# $OpenBSD: SharedItems.pm,v 1.4 2004/11/27 11:36:16 espie Exp $
#
# Copyright (c) 2004 Marc Espie <espie@openbsd.org>
#
@@ -55,10 +55,8 @@ sub cleanup
OpenBSD::ProgressMeter::set_header("Clean shared items");
my $total = 0;
$total += keys %$h if defined $h;
- if ($state->{extra}) {
- $total += keys %$u if defined $u;
- $total += keys %$g if defined $g;
- }
+ $total += keys %$u if defined $u;
+ $total += keys %$g if defined $g;
my $done = 0;
if (defined $h) {
@@ -82,22 +80,30 @@ sub cleanup
$done++;
}
}
- if ($state->{extra}) {
- if (defined $u) {
- for my $user (keys %$u) {
- OpenBSD::ProgressMeter::show($done, $total);
- next if $remaining->{users}->{$user};
+ if (defined $u) {
+ while (my ($user, $pkgname) = each %$u) {
+ OpenBSD::ProgressMeter::show($done, $total);
+ next if $remaining->{users}->{$user};
+ if ($state->{extra}) {
System("/usr/sbin/userdel", $user);
- $done++;
+ } else {
+ $state->set_pkgname($pkgname);
+ $state->print("You should also run /usr/sbin/userdel $user\n");
}
+ $done++;
}
- if (defined $g) {
- for my $group (keys %$g) {
- OpenBSD::ProgressMeter::show($done, $total);
- next if $remaining->{groups}->{$group};
+ }
+ if (defined $g) {
+ while (my ($group, $pkgname) = each %$g) {
+ OpenBSD::ProgressMeter::show($done, $total);
+ next if $remaining->{groups}->{$group};
+ if ($state->{extra}) {
System("/usr/sbin/groupdel", $group);
- $done++;
+ } else {
+ $state->set_pkgname($pkgname);
+ $state->print("You should also run /usr/sbin/groupdel $group\n");
}
+ $done++;
}
}
OpenBSD::ProgressMeter::next();