diff options
Diffstat (limited to 'scripts/aggregate.sh')
-rwxr-xr-x | scripts/aggregate.sh | 31 |
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 |