--- /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";