mirror of https://github.com/coder/coder.git
35 lines
1000 B
Bash
35 lines
1000 B
Bash
#!/usr/bin/env sh
|
|
set -eux
|
|
# Sleep for a good long while before exiting.
|
|
# This is to allow folks to exec into a failed workspace and poke around to
|
|
# troubleshoot.
|
|
waitonexit() {
|
|
echo "=== Agent script exited with non-zero code. Sleeping 24h to preserve logs..."
|
|
sleep 86400
|
|
}
|
|
trap waitonexit EXIT
|
|
BINARY_DIR=$(mktemp -d -t coder.XXXXXX)
|
|
BINARY_NAME=coder
|
|
BINARY_URL=${ACCESS_URL}bin/coder-darwin-${ARCH}
|
|
cd "$BINARY_DIR"
|
|
# Attempt to download the coder agent.
|
|
# This could fail for a number of reasons, many of which are likely transient.
|
|
# So just keep trying!
|
|
while :; do
|
|
curl -fsSL --compressed "${BINARY_URL}" -o "${BINARY_NAME}" && break
|
|
status=$?
|
|
echo "error: failed to download coder agent using curl"
|
|
echo "curl exit code: ${status}"
|
|
echo "Trying again in 30 seconds..."
|
|
sleep 30
|
|
done
|
|
|
|
if ! chmod +x $BINARY_NAME; then
|
|
echo "Failed to make $BINARY_NAME executable"
|
|
exit 1
|
|
fi
|
|
|
|
export CODER_AGENT_AUTH="${AUTH_TYPE}"
|
|
export CODER_AGENT_URL="${ACCESS_URL}"
|
|
exec ./$BINARY_NAME agent
|