X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=Debian%2FDgit.pm;h=112d15bb64e2c8fbc1e64f6aba4e0569f1718176;hp=f166f11b58464b7d9616579fb3af89f4ef01a41d;hb=8c58335913e7ec0465a939a9a277e7fbd0df68e0;hpb=89506141b188407123bf605d2b051f2dfa10ad4b diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index f166f11b..112d15bb 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -17,7 +17,8 @@ BEGIN { @EXPORT = qw(debiantag server_branch server_ref stat_exists git_for_each_ref $package_re $component_re $branchprefix - initdebug enabledebug printdebug debugcmd + initdebug enabledebug enabledebuglevel + printdebug debugcmd $debugprefix *debuglevel *DEBUG shellquote printcmd); %EXPORT_TAGS = ( policyflags => [qw(NOFFCHECK FRESHREPO)] ); @@ -91,6 +92,16 @@ sub enabledebug () { $debuglevel ||= 1; } +sub enabledebuglevel ($) { + my ($newlevel) = @_; # may be undef (eg from env var) + die if $debuglevel; + $newlevel //= 0; + $newlevel += 0; + return unless $newlevel; + $debuglevel = $newlevel; + enabledebug(); +} + sub printdebug { print DEBUG $debugprefix, @_ or die $! if $debuglevel>0; } @@ -100,7 +111,7 @@ sub shellquote { local $_; foreach my $a (@_) { $_ = $a; - if (m{[^-=_./0-9a-z]}i) { + if (!length || m{[^-=_./0-9a-z]}i) { s{['\\]}{'\\$&'}g; push @out, "'$_'"; } else {