| #!/bin/bash | |
| set -e | |
| STRINGS=$(mktemp) | |
| ERRORS=$(mktemp) | |
| trap "rm $STRINGS; rm $ERRORS;" EXIT | |
| FILE=$1 | |
| shift 1 | |
| while getopts "f:e:" opt; do | |
| case $opt in | |
| f) echo "$OPTARG" >> $STRINGS;; | |
| e) echo "$OPTARG" >> $STRINGS ; echo "$OPTARG" >> $ERRORS;; | |
| esac | |
| done | |
| shift $((OPTIND -1)) | |
| echo "Waiting for $FILE to say one of following strings" | |
| cat $STRINGS | |
| while ! egrep -wf $STRINGS $FILE; do | |
| sleep 2 | |
| done | |
| if egrep -wf $ERRORS $FILE; then | |
| exit 1 | |
| fi |