summaryrefslogtreecommitdiff
path: root/scripts/aggregate.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/aggregate.sh')
-rwxr-xr-xscripts/aggregate.sh31
1 files changed, 28 insertions, 3 deletions
diff --git a/scripts/aggregate.sh b/scripts/aggregate.sh
index 25763dee..fa108398 100755
--- a/scripts/aggregate.sh
+++ b/scripts/aggregate.sh
@@ -1,14 +1,39 @@
#!/bin/sh
+aggregate_interval_min=60
+cmd_timeout_s=600
+
DIR=`pwd`
ODIR=$1
-rm $ODIR/*.xml
+rm -f $ODIR/*.xml
+
+last_aggregate_ts=$ODIR/last_aggregate.ts
+
+if find $last_aggregate_ts -mmin -$aggregate_interval_min 2>/dev/null | grep -q . ; then
+ exit 0
+else
+ touch $last_aggregate_ts
+fi
grep -v -e '^#' $ODIR/metadata.lst | (while read url cert; do
cfile=""
if [ "x$cert" != "x" ]; then
cfile=$DIR/certs/$cert
fi
- $DIR/scripts/pull-and-verify.sh $url $ODIR $cfile
-done)
+ cmd="$DIR/scripts/pull-and-verify.sh $url $ODIR $cfile"
+ timeout $cmd_timeout_s $cmd 2>&1
+ ret=$?
+ case $ret in
+ 0)
+ ;;
+ 124)
+ echo "$cmd timed out after $cmd_timeout_s seconds"
+ exit $ret
+ ;;
+ *)
+ echo "$cmd failed with exit code $ret, output:"
+ exit $ret
+ ;;
+ esac
+done) || exit $ret