when we run into real errors, the progress meter is distracting, so have
authorespie <espie@openbsd.org>
Mon, 22 Dec 2014 14:24:56 +0000 (14:24 +0000)
committerespie <espie@openbsd.org>
Mon, 22 Dec 2014 14:24:56 +0000 (14:24 +0000)
a method ->disable that does something nice to the display, and stops
the progress meter right before we display our first real error.

usr.sbin/pkg_add/OpenBSD/PkgCreate.pm
usr.sbin/pkg_add/OpenBSD/ProgressMeter.pm
usr.sbin/pkg_add/OpenBSD/ProgressMeter/Term.pm

index e7082f3..1a3062a 100644 (file)
@@ -1,6 +1,6 @@
 #! /usr/bin/perl
 # ex:ts=8 sw=4:
-# $OpenBSD: PkgCreate.pm,v 1.113 2014/09/21 07:53:19 espie Exp $
+# $OpenBSD: PkgCreate.pm,v 1.114 2014/12/22 14:24:56 espie Exp $
 #
 # Copyright (c) 2003-2014 Marc Espie <espie@openbsd.org>
 #
@@ -47,6 +47,7 @@ sub error
        my $self = shift;
        my $msg = shift;
        $self->{bad}++;
+       $self->progress->disable;
        $self->errsay("Error: $msg", @_);
 }
 
index 0c65a54..f5fdb28 100644 (file)
@@ -1,5 +1,5 @@
 # ex:ts=8 sw=4:
-# $OpenBSD: ProgressMeter.pm,v 1.44 2014/11/30 15:56:15 espie Exp $
+# $OpenBSD: ProgressMeter.pm,v 1.45 2014/12/22 14:24:56 espie Exp $
 #
 # Copyright (c) 2010 Marc Espie <espie@openbsd.org>
 #
@@ -52,6 +52,8 @@ sub setup
        }
 }
 
+sub disable {}
+
 sub new_sizer
 {
        my ($progress, $plist, $state) = @_;
@@ -84,6 +86,7 @@ our @ISA = qw(OpenBSD::ProgressMeter);
 
 sub clear {}
 
+
 sub show {}
 
 sub working {}
index f2cf4aa..3819b7e 100644 (file)
@@ -1,5 +1,5 @@
 # ex:ts=8 sw=4:
-# $OpenBSD: Term.pm,v 1.28 2014/07/08 17:02:56 espie Exp $
+# $OpenBSD: Term.pm,v 1.29 2014/12/22 14:24:56 espie Exp $
 #
 # Copyright (c) 2004-2007 Marc Espie <espie@openbsd.org>
 #
@@ -273,6 +273,14 @@ sub clear
        delete $self->{stars};
 }
 
+sub disable
+{
+       my $self = shift;
+       print "\n" if length($self->{lastdisplay}) > 0;
+
+       bless $self, "OpenBSD::ProgressMeter::Stub";
+}
+
 sub next
 {
        my ($self, $todo) = @_;