diff options
Diffstat (limited to 'infloop')
-rwxr-xr-x | infloop | 43 |
1 files changed, 43 insertions, 0 deletions
@@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +MUSTBETRUE=y +unset MUSTBEFALSE +count=1 +for i in $@; do + count=$(printf "%s + 1\n" "$count" | bc) + [ -n "$BUFFERREAD" ] && BUFFERTIME="$i" && unset BUFFERREAD && continue + case "$i" in + "-t") + MUSTBETRUE=y + unset MUSTBEFALSE + ;; + "-f") + MUSTBEFALSE=y + unset MUSTBETRUE + ;; + "-c") + break 2 + ;; + "-b") + BUFFERREAD="y" + ;; + "-*") + printf "Unsupported argument. Please use -t if exit on true, and -f if exit on false.\n" + exit 1 + esac +done + +if [ $# -ge $count ]; then + COMMAND="${@:$count}" +else + printf "No command given!\n" && exit 1 +fi + +while true; do + if [ "$MUSTBEFALSE" ]; then + $COMMAND || exit 0 + else + $COMMAND && exit 0 + fi + sleep "${BUFFERTIME:-1}" +done |