summaryrefslogtreecommitdiff
path: root/usr.sbin/pkg_add
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>2009-10-19 09:19:45 +0000
committerMarc Espie <espie@cvs.openbsd.org>2009-10-19 09:19:45 +0000
commita7b2ff82e665609bc5714e2196e7386c03a036d8 (patch)
tree8f6a26cfe5ed56468729b4b210c0593750ad704d /usr.sbin/pkg_add
parent34c62bf577e58494a05bd78594815a1badd57985 (diff)
factor common code, that's a handle specific header
Diffstat (limited to 'usr.sbin/pkg_add')
-rw-r--r--usr.sbin/pkg_add/pkg_add46
1 files changed, 28 insertions, 18 deletions
diff --git a/usr.sbin/pkg_add/pkg_add b/usr.sbin/pkg_add/pkg_add
index fe88221fd34..60eea3d15f6 100644
--- a/usr.sbin/pkg_add/pkg_add
+++ b/usr.sbin/pkg_add/pkg_add
@@ -1,7 +1,7 @@
#! /usr/bin/perl
# ex:ts=8 sw=4:
-# $OpenBSD: pkg_add,v 1.357 2009/10/15 23:23:35 espie Exp $
+# $OpenBSD: pkg_add,v 1.358 2009/10/19 09:19:44 espie Exp $
#
# Copyright (c) 2003-2009 Marc Espie <espie@openbsd.org>
#
@@ -99,6 +99,19 @@ sub set_name_from_handle
$state->set_pkgname($h->pkgname);
}
+package OpenBSD::Handle;
+
+sub setup_header
+{
+ my ($handle, $state, $info) = @_;
+ my $pkgname = $handle->pkgname;
+ my $header = $state->deptree_header($pkgname).$pkgname;
+ if (defined $info) {
+ $header.=" ($info)";
+ }
+ $state->progress->set_header($header);
+}
+
package OpenBSD::UpdateSet;
use OpenBSD::PackageInfo;
use OpenBSD::Error;
@@ -106,6 +119,7 @@ use OpenBSD::Error;
sub setup_header
{
my ($set, $state) = @_;
+
my $pkgname = $set->handle->pkgname;
@@ -113,13 +127,14 @@ sub setup_header
if ($set->older) {
$header.=" (replacing ". join(', ', $set->older_names). ")";
}
+
if (!$state->progress->set_header($header)) {
- print $state->{not} ? "Pretending to add " : "Adding ";
- print $header;
- if ($state->{do_faked}) {
- print " under ", $state->{destdir};
- }
- print "\n";
+ print $state->{not} ? "Pretending to add " : "Adding ";
+ print $header;
+ if ($state->{do_faked}) {
+ print " under ", $state->{destdir};
+ }
+ print "\n";
}
}
@@ -343,9 +358,7 @@ sub really_add
if ($replacing) {
for my $handle ($set->newer) {
- my $pkgname = $handle->pkgname;
- my $header = $state->deptree_header($pkgname).$pkgname;
- $state->progress->set_header("$header (extracting)");
+ $handle->setup_header($state, "extracting");
try {
OpenBSD::Replace::perform_extraction($handle,
@@ -358,15 +371,15 @@ sub really_add
};
$state->progress->clear;
if ($state->{interrupted} || $errors) {
- Fatal partial_install("Installation of $pkgname failed",
- $set, $state);
+ Fatal partial_install("Installation of ",
+ $handle->pkgname, " failed", $set, $state);
}
}
$set->{solver}->record_old_dependencies($state);
for my $o ($set->older_to_do) {
+ $o->setup_header($state, "deleting");
my $oldname = $o->pkgname;
- $state->progress->set_header($oldname." (deleting)");
$state->set_name_from_handle($o);
require OpenBSD::Delete;
try {
@@ -391,11 +404,8 @@ sub really_add
my $pkgname = $handle->pkgname;
my $header = $state->deptree_header($pkgname).$pkgname;
my $plist = $handle->{plist};
- if ($replacing) {
- $state->progress->set_header("$header (installing)");
- } else {
- $state->progress->set_header($header);
- }
+ $handle->setup_header($state,
+ $replacing ? "installing" : undef);
$state->set_name_from_handle($handle);
try {