# HG changeset patch # User Matthias Förste foerste@schlittermann.de # Date 1316430730 -7200 # Node ID 9a44b04eec4fdce32f13b1d17c2165704a2cfca7 # Parent cb9cbd9ee35a6aa6b0a59425e103c93bf306636d added script to wait for all files in changesfile to appear diff -r cb9cbd9ee35a -r 9a44b04eec4f bin/waitfordeb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/waitfordeb Mon Sep 19 13:12:10 2011 +0200 @@ -0,0 +1,41 @@ +#!/usr/bin/perl + +use v5.10; +use strict; +use warnings; + +my $to = 600; +my $i = "$ENV{HOME}/incoming"; + +# XXX +#$| = 1; + +my $s = time; + +if ($ARGV[0] =~ m,^(\Q$i\E/)?repair_.*\.changes$,) { + my $d = "$i/$&"; + $d =~ s/\.changes$/.deb/; + my $p = qr/^\Q$d\E:( [0-9]+[cefFrm]*)+$/; + + { # 'last' needs this in a 'do ... while' loop? see 'man perlsyn' + do { + + if (-e $d) { + + $_ = qx(fuser $d); + + die "output from 'fuser' expected but got none - is it in \$PATH?" unless defined; + last if $_ eq ''; + die "unexpected output - please check" unless /$p/; + + } + + die "timeout exceeded while waiting for package file '$d'" if time - $s > $to; + + } while (sleep 10); + + } + +} + +exec "$ENV{HOME}/bin/rpi";