while[ -h "$SOURCE"];do# resolve $SOURCE until the file is no longer a symlink
DIR="$(cd -P "$( dirname "$SOURCE")"&&pwd)"
SOURCE="$(readlink "$SOURCE")"
[[$SOURCE != /* ]]&&SOURCE="$DIR/$SOURCE"# if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$(cd -P "$( dirname "$SOURCE")"&&pwd)"
# Do not "cd $DIR". For localRun, the current directory is expected to be the repo location on disk.
# Run
shopt -s nocasematch
if[["$1"=="localRun"]];then
"$DIR"/bin/Runner.Listener $*
else
"$DIR"/bin/Runner.Listener run $*
# Return code 4 means the run once agent received an update message.
# Sleep 5 seconds to wait for the update process finish and run the agent again.