chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dgit-repos-policy-debian: WIP bugfixes to debugging
[dgit.git]
/
Debian
/
Dgit.pm
diff --git
a/Debian/Dgit.pm
b/Debian/Dgit.pm
index f166f11b58464b7d9616579fb3af89f4ef01a41d..112d15bb64e2c8fbc1e64f6aba4e0569f1718176 100644
(file)
--- 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
@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)] );
$debugprefix *debuglevel *DEBUG
shellquote printcmd);
%EXPORT_TAGS = ( policyflags => [qw(NOFFCHECK FRESHREPO)] );
@@
-91,6
+92,16
@@
sub enabledebug () {
$debuglevel ||= 1;
}
$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;
}
sub printdebug {
print DEBUG $debugprefix, @_ or die $! if $debuglevel>0;
}
@@
-100,7
+111,7
@@
sub shellquote {
local $_;
foreach my $a (@_) {
$_ = $a;
local $_;
foreach my $a (@_) {
$_ = $a;
- if (m{[^-=_./0-9a-z]}i) {
+ if (
!length ||
m{[^-=_./0-9a-z]}i) {
s{['\\]}{'\\$&'}g;
push @out, "'$_'";
} else {
s{['\\]}{'\\$&'}g;
push @out, "'$_'";
} else {