diff options
author | Marc Espie <espie@cvs.openbsd.org> | 2009-11-08 12:16:24 +0000 |
---|---|---|
committer | Marc Espie <espie@cvs.openbsd.org> | 2009-11-08 12:16:24 +0000 |
commit | b5ca2951bc85f080e2123027c50b0ea1c6a0704f (patch) | |
tree | 1d120a94d40b0f0b0011a9c55afcab91705bd956 | |
parent | 88b8290f5cc4d63e03c502eb7695181eba8e4816 (diff) |
let Handle display what went wrong.
Move stuff from being a fatal error to an error that displays at end, together
with an error code.
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/Handle.pm | 19 | ||||
-rw-r--r-- | usr.sbin/pkg_add/pkg_add | 13 |
2 files changed, 24 insertions, 8 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/Handle.pm b/usr.sbin/pkg_add/OpenBSD/Handle.pm index f7affacf1c2..e0b53db4fa4 100644 --- a/usr.sbin/pkg_add/OpenBSD/Handle.pm +++ b/usr.sbin/pkg_add/OpenBSD/Handle.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: Handle.pm,v 1.8 2009/11/08 11:31:37 espie Exp $ +# $OpenBSD: Handle.pm,v 1.9 2009/11/08 12:16:23 espie Exp $ # # Copyright (c) 2007-2009 Marc Espie <espie@openbsd.org> # @@ -97,6 +97,23 @@ sub has_error return $self->{error}; } +sub error_message +{ + my $self = shift; + my $error = $self->{error}; + if ($error == BAD_PACKAGE) { + return "bad package"; + } elsif ($error == CANT_INSTALL) { + return "can't install"; + } elsif ($error == NOT_FOUND) { + return "not found"; + } elsif ($error == ALREADY_INSTALLED) { + return "already installed"; + } else { + return "no error"; + } +} + sub create_old { diff --git a/usr.sbin/pkg_add/pkg_add b/usr.sbin/pkg_add/pkg_add index fa2db2e8016..8850525cc10 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.372 2009/11/08 11:18:41 espie Exp $ +# $OpenBSD: pkg_add,v 1.373 2009/11/08 12:16:23 espie Exp $ # # Copyright (c) 2003-2009 Marc Espie <espie@openbsd.org> # @@ -476,12 +476,11 @@ sub install_set return (); } if ($handle->has_error) { - if (!$handle->{tweaked}) { - $state->set_name_from_handle($handle); - $state->fatal("Fatal error"); - } else { - return (); - } + $state->set_name_from_handle($handle); + $state->print("Can't install ", $handle->pkgname, ":", + $handle->error_message, "\n"); + $bad++; + return (); } if ($handle->plist->has('arch')) { |