bin/waitfordeb
branchrsync
changeset 27 9a44b04eec4f
child 41 40df28fd3562
equal deleted inserted replaced
26:cb9cbd9ee35a 27:9a44b04eec4f
       
     1 #!/usr/bin/perl
       
     2 
       
     3 use v5.10;
       
     4 use strict;
       
     5 use warnings;
       
     6 
       
     7 my $to = 600;
       
     8 my $i = "$ENV{HOME}/incoming";
       
     9 
       
    10 # XXX
       
    11 #$| = 1;
       
    12 
       
    13 my $s = time;
       
    14 
       
    15 if ($ARGV[0] =~ m,^(\Q$i\E/)?repair_.*\.changes$,) {
       
    16     my $d = "$i/$&";
       
    17     $d =~ s/\.changes$/.deb/;
       
    18     my $p = qr/^\Q$d\E:( [0-9]+[cefFrm]*)+$/;
       
    19 
       
    20     { # 'last' needs this in a 'do ... while' loop? see 'man perlsyn'
       
    21 	do {
       
    22 
       
    23 	    if (-e $d) {
       
    24 
       
    25 		$_ = qx(fuser $d);
       
    26 
       
    27 		die "output from 'fuser' expected but got none - is it in \$PATH?" unless defined;
       
    28 		last if $_ eq '';
       
    29 		die "unexpected output - please check" unless /$p/;
       
    30 
       
    31 	    }
       
    32 
       
    33 	    die "timeout exceeded while waiting for package file '$d'" if time - $s > $to;
       
    34 
       
    35 	} while (sleep 10);
       
    36 
       
    37     }
       
    38 
       
    39 }
       
    40 
       
    41 exec "$ENV{HOME}/bin/rpi";