mirror of
https://github.com/ilyakooo0/Idris-dev.git
synced 2024-11-14 13:56:59 +03:00
c47608d968
Turns out there's a timeout command in core utils that is convenient. Fixes basic010 and reg039 on Windows.
36 lines
953 B
Bash
Executable File
36 lines
953 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
|
|
declare -a extraargs
|
|
for arg in "$@"
|
|
do
|
|
extraargs=("${extraargs[@]}" "'$arg'")
|
|
done
|
|
if (which timeout&>/dev/null); then
|
|
timeout 60 idris $@ --nocolour reg039.idr --exec go
|
|
else
|
|
# From http://unix.stackexchange.com/questions/43340/how-to-introduce-timeout-for-shell-scripting
|
|
# Executes command with a timeout
|
|
# Params:
|
|
# $1 timeout in seconds
|
|
# $2 command
|
|
# Returns 1 if timed out 0 otherwise
|
|
timeout() {
|
|
|
|
time=$1
|
|
|
|
# start the command in a subshell to avoid problem with pipes
|
|
# (spawn accepts one command)
|
|
command="/bin/sh -c \"$2\""
|
|
|
|
expect -c "set echo \"-noecho\"; set timeout $time; spawn -noecho $command; expect timeout { exit 1 } eof { exit 0 }"
|
|
|
|
if [ $? = 1 ] ; then
|
|
echo "Timeout after ${time} seconds"
|
|
fi
|
|
|
|
}
|
|
timeout 60 "idris ${extraargs[*]} --nocolour reg039.idr --exec go"
|
|
fi
|
|
rm -f reg039 *.ibc
|