From: Andreas Barth Date: Sat, 30 Apr 2011 15:10:08 +0000 (+0000) Subject: show_distribution_architectures: when used together with a suite, show only that... X-Git-Url: https://git.donarmstrong.com/?p=wannabuild.git;a=commitdiff_plain;h=4133f401dd03e195b058cd94d425fa1adbe5df67 show_distribution_architectures: when used together with a suite, show only that suites architectures cleanup distribution handling code a bit --- diff --git a/bin/wanna-build b/bin/wanna-build index 477d5f4..7c6e9b2 100755 --- a/bin/wanna-build +++ b/bin/wanna-build @@ -170,6 +170,7 @@ my @wannabuildoptions = ( $privmode = 0; $distribution = 'any'; } + $privmode = 1 if $distribution =~ /security/; } }, 'order|O=s' => sub { @@ -219,10 +220,8 @@ END { } } -$distribution ||= "sid"; - my $schema_suffix = ''; -if ((isin( $op_mode, qw(list info distribution-architectures distribution-aliases)) && $distribution !~ /security/ && !$recorduser && !($privmode)) || $simulate) { +if ((isin( $op_mode, qw(list info distribution-architectures distribution-aliases)) && !$recorduser && !$privmode) || $simulate) { $dbh = DBI->connect("DBI:Pg:service=wanna-build") || die "FATAL: Cannot open database: $DBI::errstr\n"; $schema_suffix = '_public'; @@ -257,15 +256,14 @@ foreach my $name (keys %$rows) { $distribution = $distribution_aliases{$distribution} if (isin($distribution, keys %distribution_aliases)); $op_mode ||= "set-building"; -undef $distribution if $distribution eq 'any'; if ($distribution) { my @dists = split(/[, ]+/, $distribution); foreach my $dist (@dists) { die "Bad distribution '$distribution'\n" - if !isin($dist, keys %distributions); + if !isin($dist, keys %distributions, "any"); } } -if (!isin ( $op_mode, qw(list) ) && ( !$distribution || $distribution =~ /[ ,]/)) { +if (!isin ( $op_mode, qw(list) ) && ( ($distribution//"") =~ /[ ,]/)) { die "multiple distributions are only allowed for list"; } @@ -348,12 +346,16 @@ if (isin($op_mode, qw) && defined @conf::admin_user } if (!isin($op_mode, qw)) { die "need an architecture" unless $arch; - my $rows = $dbh->selectall_hashref('SELECT distribution as d from distribution_architectures where architecture=? and distribution=?', [qw], undef, ($arch, $distribution)) if $distribution; + my $rows = $dbh->selectall_hashref('SELECT distribution as d from distribution_architectures where architecture=? and distribution=?', [qw], undef, ($arch, $distribution//"sid")) if ($distribution//"") ne 'any'; $rows = $dbh->selectall_hashref('SELECT distribution as d from distribution_architectures where architecture=?', [qw], undef, ($arch,)) unless $rows; - die "architecture ($arch) does not exist (at least not for $distribution)" if !keys %$rows and $distribution; + die "architecture ($arch) does not exist (at least not for ".($distribution//"sid").")" if !keys %$rows and $distribution//"sid" ne 'any'; die "architecture ($arch) does not exist" if !keys %$rows; } +my $suite = $distribution; +$distribution ||='sid'; +undef $distribution if $distribution eq 'any'; + SWITCH: foreach ($op_mode) { /^set-(.+)/ && do { add_packages( $1, @ARGV ); @@ -413,7 +415,7 @@ if (!isin($op_mode, qw)) { last SWITCH; }; /^distribution-architectures/ && do { - show_distribution_architectures(); + show_distribution_architectures({'suite' => $suite}); last SWITCH; }; /^distribution-aliases/ && do { @@ -1950,13 +1952,18 @@ sub get_all_source_info { } sub show_distribution_architectures { + my $args = shift; my $q = 'SELECT distribution, spacecat_all(architecture) AS architectures '. 'FROM distribution_architectures '. 'GROUP BY distribution'; my $rows = $dbh->selectall_hashref($q, 'distribution'); - foreach my $name (keys %$rows) { + if ($args->{suite}) { + print $rows->{$args->{'suite'}}->{'architectures'}."\n"; + } else { + foreach my $name (keys %$rows) { print $name.': '.$rows->{$name}->{'architectures'}."\n"; - } + } + } } sub show_distribution_aliases {