diff --git a/run.sh b/run.sh index d848ad52d..4bece845c 100755 --- a/run.sh +++ b/run.sh @@ -2,11 +2,12 @@ set -eu BUILD="Release" +UNTIL_CLEAN_EXIT=0 MONO_ARGS=("--llvm" "--server" "-O=all") PRINT_USAGE() { - echo "Usage: $0 [debug/release]" + echo "Usage: $0 [--until-clean-exit] [debug/release]" exit 1 } @@ -14,6 +15,7 @@ for ARG in "$@"; do case "$ARG" in release|Release) BUILD="Release" ;; debug|Debug) BUILD="Debug" ;; + --until-clean-exit) UNTIL_CLEAN_EXIT=1 ;; *) PRINT_USAGE esac done @@ -31,4 +33,14 @@ if [[ ! -f "$BINARY" ]]; then exit 1 fi -mono "${MONO_ARGS[@]}" "$BINARY" +if [[ "$UNTIL_CLEAN_EXIT" -eq 0 ]]; then + mono "${MONO_ARGS[@]}" "$BINARY" + exit $? +fi + +while [[ -f "$BINARY" ]]; do + if mono "${MONO_ARGS[@]}" "$BINARY"; then + break + fi + sleep 1 +done