next if $ok_blockers{$blocker} or $bad_blockers{$blocker};
my $data = read_bug(bug=>$blocker,
);
- if (defined $data and not $data->{archive}) {
+ if (defined $data and not $data->{archived}) {
$data = split_status_fields($data);
$ok_blockers{$blocker} = 1;
my @merged_bugs;
# blocker
if (keys %bad_blockers and $mode eq 'set') {
__end_control(%info);
- croak "Unknown blocking bug(s):".join(', ',keys %bad_blockers).
- keys %ok_blockers?'':" and no known blocking bug(s)";
+ croak "Unknown/archived blocking bug(s):".join(', ',keys %bad_blockers).
+ keys %ok_blockers?'':" and no good blocking bug(s)";
}
# if there are no ok blockers and we are not setting the blockers,
# there's an error.
print {$transcript} "No valid blocking bug(s) given; not doing anything\n";
if (keys %bad_blockers) {
__end_control(%info);
- croak "Unknown blocking bug(s):".join(', ',keys %bad_blockers);
+ croak "Unknown/archived blocking bug(s):".join(', ',keys %bad_blockers);
}
__end_control(%info);
return;
my @bugs = @{$info{bugs}};
my $action = "$config{bug} unarchived.";
my @files_to_remove;
+ ## error out if we're unarchiving unarchived bugs
+ for my $data (@{$info{data}}) {
+ if (not defined $data->{archived} or
+ not $data->{archived}
+ ) {
+ __end_control(%info);
+ croak("Bug $data->{bug_num} was not archived; not unarchiving it.");
+ }
+ }
for my $bug (@bugs) {
print {$debug} "$param{bug} removing $bug\n";
my $dir = get_hashname($bug);