| #!/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";; | |
| *) exit | |
| esac | |
| done | |
| shift $((OPTIND -1)) | |
| echo "Waiting for $FILE to say one of following strings" | |
| cat "$STRINGS" | |
| while ! grep -E -wf "$STRINGS" "$FILE"; do | |
| sleep 2 | |
| done | |
| if grep -E -wf "$ERRORS" "$FILE"; then | |
| exit 1 | |
| fi |