Package: devscripts Severity: wishlist
The attached diff gives the ability to use the status bits in the bts to do fun things, like the following: $ ./scripts/bts.pl status 300000 bug_num: 300000 source: unknown done: NoèlKöthe <[EMAIL PROTECTED]> found_versions: 0.51-2 blocks: fixed: crypt-ssleay/0.51-3 => date: 1111072040 fixed_versions: crypt-ssleay/0.51-3 mergedwith: found: 0.51-2 => blockedby: unarchived: keywords: summary: msgid: <[EMAIL PROTECTED]> forwarded: id: 300000 severity: minor owner: location: archive log_modified: 1111656819 subject: libcrypt-ssleay-perl: package description typo(s) and the like originator: Florian Zumbiehl <[EMAIL PROTECTED]> pending: done archived: 1 affects: package: libcrypt-ssleay-perl fixed_date: tags: found_date: $ echo -e '300000\n300001\n' |./scripts/bts.pl status file:- bug_num: 300000 source: unknown done: NoèlKöthe <[EMAIL PROTECTED]> found_versions: 0.51-2 blocks: fixed: crypt-ssleay/0.51-3 => date: 1111072040 fixed_versions: crypt-ssleay/0.51-3 mergedwith: found: 0.51-2 => blockedby: unarchived: keywords: summary: msgid: <[EMAIL PROTECTED]> forwarded: id: 300000 severity: minor owner: location: archive log_modified: 1111656819 subject: libcrypt-ssleay-perl: package description typo(s) and the like originator: Florian Zumbiehl <[EMAIL PROTECTED]> pending: done archived: 1 affects: package: libcrypt-ssleay-perl fixed_date: tags: found_date: bug_num: 300001 source: unknown done: Craig Small <[EMAIL PROTECTED]> found_versions: 0.8.0-1 blocks: fixed: jffnms/0.8.1-2 => date: 1111072046 fixed_versions: jffnms/0.8.1-2 mergedwith: found: 0.8.0-1 => blockedby: unarchived: keywords: summary: msgid: <[EMAIL PROTECTED]> forwarded: id: 300001 severity: minor owner: location: archive log_modified: 1112745789 subject: jffnms: package description typo(s) and the like originator: Florian Zumbiehl <[EMAIL PROTECTED]> pending: done archived: 1 affects: package: jffnms fixed_date: tags: found_date: Don Armstrong -- Religion is religion, however you wrap it, and like Quell says, a preoccupation with the next world clearly signals an inability to cope credibly with this one. -- Richard K. Morgan "Broken Angels" p65 http://www.donarmstrong.com http://rzlab.ucr.edu
Index: debian/changelog =================================================================== --- debian/changelog (revision 1586) +++ debian/changelog (working copy) @@ -1,3 +1,9 @@ +devscripts (2.10.35.1) unstable; urgency=low + + * Hack for bts status command + + -- Don Armstrong <[EMAIL PROTECTED]> Sun, 10 Aug 2008 14:25:11 -0700 + devscripts (2.10.36) UNRELEASED; urgency=low [ Adam D. Barratt ] Index: Devscripts/Debbugs.pm =================================================================== --- Devscripts/Debbugs.pm (revision 1586) +++ Devscripts/Debbugs.pm (working copy) @@ -153,6 +153,8 @@ bugs => 'bugs', archive => 'archive', severity => 'severity', + correspondent => 'correspondent', + affects => 'affects', ); my %users; my %search_parameters; Index: scripts/bts.pl =================================================================== --- scripts/bts.pl (revision 1586) +++ scripts/bts.pl (working copy) @@ -47,6 +47,8 @@ use Getopt::Long; use Encode; +use Scalar::Util qw(looks_like_number); + # Funny UTF-8 warning messages from HTML::Parse should be ignorable (#292671) $SIG{'__WARN__'} = sub { warn $_[0] unless $_[0] =~ /^Parsing of undecoded UTF-8 will give garbage when decoding entities/; }; @@ -949,6 +951,59 @@ print map {qq($_\n)} @{$bugs}; } +sub bts_status { + my @args = @_; + + my @bugs; + for my $bug (@args) { + if (looks_like_number($bug)) { + push @bugs,$bug; + } + elsif (m{^file:(.+)}) { + my $file = $1; + my $fh; + if ($file eq '-') { + $fh = \*STDIN; + } + else { + $fh = IO::File->new($file,'r') or + die "Unable to open $file for reading: $!"; + } + while (<$fh>) { + chomp; + next if /^\s*\#/; + s/\s//g; + next unless looks_like_number($_); + push @bugs,$_; + } + } + } + my $bugs = Devscripts::Debbugs::status(@bugs); + my $first = 1; + for my $bug (keys %{$bugs}) { + print "\n" if not $first; + $first = 0; + my @keys = grep {$_ ne 'bug_num'} + keys %{$bugs->{$bug}}; + for my $key ('bug_num',@keys) { + print "$key: "; + if (ref($bugs->{$bug}{$key}) eq 'ARRAY') { + print join(',',@{$bugs->{$bug}{$key}}); + } + elsif (ref($bugs->{$bug}{$key}) eq 'HASH') { + print join(',', + map { $_ .' => '. ($bugs->{$bug}{$key}{$_}||'') } + keys %{$bugs->{$bug}{$key}} + ); + } + else { + print $bugs->{$bug}{$key}||''; + } + print "\n"; + } + } +} + =item clone <bug> [new IDs] The clone control command allows you to duplicate a bug report. It is useful