bin/rpi
branchrsync
changeset 45 19639ba80436
parent 42 73cb1d7a1bd8
equal deleted inserted replaced
44:2552664b674a 45:19639ba80436
    34     }
    34     }
    35 ) or pod2usage;
    35 ) or pod2usage;
    36 
    36 
    37 my $hostname = hostname_long;
    37 my $hostname = hostname_long;
    38 for (*STDERR, *STDOUT) { select $_; $| = 1; }
    38 for (*STDERR, *STDOUT) { select $_; $| = 1; }
       
    39 
       
    40 my $rci = "$repo/conf/incoming";
       
    41 my $i   = parse_incoming($rci)->{$ruleset}->{'IncomingDir'};
       
    42 die
       
    43   "Can't find IncomingDir for ruleset [$ruleset] in configuration file: [$rci]\n"
       
    44   unless defined $i;
       
    45 my @changes = @ARGV or glob("$i/*.changes");
    39 
    46 
    40 # see man reprepro
    47 # see man reprepro
    41 # used as argument to the -b option of reprepro
    48 # used as argument to the -b option of reprepro
    42 my $repo = "$ENV{HOME}/repo";
    49 my $repo = "$ENV{HOME}/repo";
    43 
    50 
   114     "(md5|sha(1|256)) expected: [[:xdigit:]]{32,}, got: [[:xdigit:]]{32,}",
   121     "(md5|sha(1|256)) expected: [[:xdigit:]]{32,}, got: [[:xdigit:]]{32,}",
   115     "size expected: \\d+, got: \\d+",
   122     "size expected: \\d+, got: \\d+",
   116     "There have been errors!"
   123     "There have been errors!"
   117   ) . '$';
   124   ) . '$';
   118 
   125 
   119 my $rci = "$repo/conf/incoming";
       
   120 my $i   = parse_incoming($rci)->{$ruleset}->{'IncomingDir'};
       
   121 die
       
   122   "Can't find IncomingDir for ruleset [$ruleset] in configuration file: [$rci]\n"
       
   123   unless defined $i;
       
   124 
       
   125 # we need to determine uploaders before running reprepro, because it will
   126 # we need to determine uploaders before running reprepro, because it will
   126 # remove the *.changes files before we are going to parse its output
   127 # remove the *.changes files before we are going to parse its output
   127 my $uploaders = { map { $_ => uploader($_) } glob("$i/*.changes") };
   128 my $uploaders = { map { $_ => uploader($_) } @changes };
   128 if ($opt{'run-lintian'}) {
   129 if ($opt{'run-lintian'}) {
   129     for my $c (keys %{$uploaders}) {
   130     for my $c (keys %{$uploaders}) {
   130         sendmails({ $uploaders->{$c} => scalar qx{lintian $c 2>&1} },
   131         sendmails({ $uploaders->{$c} => scalar qx{lintian $c 2>&1} },
   131             $valid_receivers, $fallback, $hostname,
   132             $valid_receivers, $fallback, $hostname,
   132             "[$hostname] Lintian Report");
   133             "[$hostname] Lintian Report");
   133     }
   134         my $messages =
   134 }
   135         run_command_and_parse_output([@cmd, $c], $uploaders, $important, $unimportant,
   135 my $messages =
   136             $log_uncaught, $log_raw);
   136   run_command_and_parse_output([@cmd], $uploaders, $important, $unimportant,
   137         sendmails($messages, $valid_receivers, $fallback, $hostname,
   137     $log_uncaught, $log_raw);
   138             "[$hostname] Import Report");
   138 sendmails($messages, $valid_receivers, $fallback, $hostname,
   139 
   139     "[$hostname] Import Report");
   140     }
   140 
   141 }
   141 # determine 'uploader' of changes file; 'uploader' means here: either the
   142 # determine 'uploader' of changes file; 'uploader' means here: either the
   142 # signer of the changes file or the changer or the maintainer in that order of
   143 # signer of the changes file or the changer or the maintainer in that order of
   143 # preference; the 'changer' means what is extracted from the 'Changed-By' field
   144 # preference; the 'changer' means what is extracted from the 'Changed-By' field
   144 # of the .changes file if present; 'maintainer' will be extracted from the
   145 # of the .changes file if present; 'maintainer' will be extracted from the
   145 # 'Maintainer' field if necessary; nothing will be returned if the signature
   146 # 'Maintainer' field if necessary; nothing will be returned if the signature