]> git.donarmstrong.com Git - wannabuild.git/commitdiff
Merge branch 'master' of /org/buildd.debian.org/git/wanna-build
authorAndreas Barth <aba@not.so.argh.org>
Sun, 28 Feb 2010 19:30:23 +0000 (19:30 +0000)
committerAndreas Barth <aba@not.so.argh.org>
Sun, 28 Feb 2010 19:30:23 +0000 (19:30 +0000)
1  2 
bin/wanna-build

diff --combined bin/wanna-build
index 27b732c89f79f014ca910b5807c32b0693fd5855,d5f1b8d3cc835f43f30f2f32ae31df7d9185c147..1de5e920a53155502dbafa70598a1458f5105721
@@@ -41,9 -41,6 +41,9 @@@ use File::Copy
  use DBI;
  use lib '/org/wanna-build/bin';
  use WannaBuild;
 +use YAML::Tiny;
 +use Data::Dumper;
 +use Hash::Merge qw ( merge );
  
  our ($verbose, $mail_logs, $list_order, $list_state,
      $curr_date, $op_mode, $user, $real_user, $distribution,
@@@ -56,7 -53,6 +56,7 @@@
  
  # global vars
  $ENV{'PATH'} = "/bin:/usr/bin:/usr/local/bin:/org/wanna-build/bin/";
 +$ENV{'LC_ALL'} = 'C';
  $verbose = 0;
  $mail_logs = "";
  @curr_time = gmtime;
@@@ -298,22 -294,6 +298,22 @@@ if (!$fail_reason) 
        }
  }
  
 +my $yamlmap = ();
 +my $yamldir = "/org/wanna-build/etc/yaml";
 +my @files = ('wanna-build.yaml');
 +if ($user =~ /(buildd.*)-/) { push (@files, "$1.yaml") };
 +push ( @files, "$user.yaml");
 +foreach my $file (@files) {
 +      if ($verbose >= 2) { print "Trying to read $file ...\n"; }
 +      next unless -f $yamldir."/".$file;
 +      if ($verbose >= 2) { print "Read $file ...\n"; }
 +      my $m = YAML::Tiny->read( $yamldir."/".$file )->[0];
 +      $yamlmap = merge($m, $yamlmap);
 +}
 +if (not $yamlmap) {
 +      die "FATAL: no configuration found\n";
 +}
 +
  my $dbh;
  
  END {
@@@ -1832,11 -1812,23 +1832,11 @@@ sub sort_list_func 
  }
  
  sub calculate_prio {
 -######################
 -# priority: required = 50, important = 40, standard = 30, optional = 5
 -# section: libs = 4, devel = 2
 -# component: contrib = -10, non-free = -20
 -# never built = -20
 -# max(floor(waitingdays),6)
 -
 -      my $priomap;
 -      $priomap->{'priority'} = { 'required' => 50, 'important' => 40, 'standard' => 30, 'optional' => 5 };
 -      $priomap->{'section'} = { 'libs' => 4, 'devel' => 2 };
 -      $priomap->{'component'} = { 'contrib' => -10, 'non-free' => -20 };
 -      $priomap->{'notes'} = { 'uncompiled' => 20, 'out-of-date' => 40, 'partial' => 40 };
 -      $priomap->{'waitingdays'} = { 'min' => 0, 'max' => 6, scale => 2 };
 +      my $priomap = $yamlmap->{priority};
        my $pkg = shift;
        $pkg->{'calprio'} = 0;
 -      foreach my $k (keys %$priomap) {
 -              $pkg->{'calprio'} += $priomap->{$k}{$pkg->{$k}} if $pkg->{$k} and $priomap->{$k}{$pkg->{$k}};
 +      foreach my $k (keys %{$priomap->{keys}}) {
 +              $pkg->{'calprio'} += $priomap->{keys}->{$k}{$pkg->{$k}} if $pkg->{$k} and $priomap->{keys}->{$k}{$pkg->{$k}};
        }
  
        my $days = $pkg->{'state_days'};
@@@ -1895,8 -1887,8 +1895,8 @@@ sub list_packages 
                print "  Previous state was $pkg->{'previous_state'} until ",
                          "$pkg->{'state_change'}\n"
                        if $verbose && $pkg->{'previous_state'};
-               print "  Previous state left $pkg->{'state_time'} ago\n"
-                       if $verbose && $pkg->{'state_time'};
+               print "  Previous state $pkg->{'previous_state'} left $pkg->{'state_time'} ago\n"
+                       if $verbose && $pkg->{'previous_state'};
                print "  No previous state recorded\n"
                        if $verbose && !$pkg->{'previous_state'};
                print "  Previous failing reasons:\n    ",