From 6077d258b500b20e1e705f5cda567400240c7804 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 11:36:25 +0200 Subject: Adding upstream version 2.21.3+deb11u1. Signed-off-by: Daniel Baumann --- lib/Devscripts/Output.pm | 83 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 lib/Devscripts/Output.pm (limited to 'lib/Devscripts/Output.pm') diff --git a/lib/Devscripts/Output.pm b/lib/Devscripts/Output.pm new file mode 100644 index 0000000..c0cfab2 --- /dev/null +++ b/lib/Devscripts/Output.pm @@ -0,0 +1,83 @@ +package Devscripts::Output; + +use strict; +use Exporter 'import'; +use File::Basename; +use constant accept => qr/^y(?:es)?\s*$/i; +use constant refuse => qr/^n(?:o)?\s*$/i; + +our @EXPORT = ( + qw(ds_debug ds_extra_debug ds_verbose ds_warn ds_error + ds_die ds_msg who_called $progname $verbose + ds_prompt accept refuse $ds_yes) +); + +# ACCESSORS +our ($verbose, $die_on_error, $ds_yes) = (0, 1, 0); + +our $progname = basename($0); + +sub printwarn { + my ($msg, $w) = @_; + chomp $msg; + if ($w) { + print STDERR "$msg\n"; + } else { + print "$msg\n"; + } +} + +sub ds_msg($) { + my $msg = $_[0]; + printwarn "$progname: $msg"; +} + +sub ds_verbose($) { + my $msg = $_[0]; + if ($verbose > 0) { + printwarn "$progname info: $msg"; + } +} + +sub who_called { + return '' unless ($verbose > 1); + my @out = caller(1); + return " [$out[0]: $out[2]]"; +} + +sub ds_warn ($) { + my $msg = $_[0]; + printwarn("$progname warn: $msg" . who_called, 1); +} + +sub ds_debug($) { + my $msg = $_[0]; + printwarn "$progname debug: $msg" if $verbose > 1; +} + +sub ds_extra_debug($) { + my $msg = $_[0]; + printwarn "$progname debug: $msg" if $verbose > 2; +} + +*ds_die = \&ds_error; + +sub ds_error($) { + my $msg = $_[0]; + $msg = "$progname error: $msg" . who_called; + if ($die_on_error) { + print STDERR "$msg\n"; + exit 1; + } + printwarn($msg, 1); +} + +sub ds_prompt { + return 'yes' if ($ds_yes > 0); + print STDERR shift; + my $s = ; + chomp $s; + return $s; +} + +1; -- cgit v1.2.3