33set -x
44
55set -o nounset
6- MODULE_DIRECTORY=" $ARG_MODULE_DIRECTORY "
7- WORKDIR=" $ARG_WORKDIR "
8- INSTALL_AGENTAPI=" $ARG_INSTALL_AGENTAPI "
9- AGENTAPI_VERSION=" $ARG_AGENTAPI_VERSION "
10- WAIT_FOR_START_SCRIPT=" $ARG_WAIT_FOR_START_SCRIPT "
11- AGENTAPI_PORT=" $ARG_AGENTAPI_PORT "
12- AGENTAPI_CHAT_BASE_PATH=" ${ARG_AGENTAPI_CHAT_BASE_PATH:- } "
13- TASK_ID=" ${ARG_TASK_ID:- } "
14- TASK_LOG_SNAPSHOT=" ${ARG_TASK_LOG_SNAPSHOT:- true} "
15- ENABLE_STATE_PERSISTENCE=" ${ARG_ENABLE_STATE_PERSISTENCE:- false} "
16- STATE_FILE_PATH=" ${ARG_STATE_FILE_PATH:- } "
17- PID_FILE_PATH=" ${ARG_PID_FILE_PATH:- } "
18- LIB_SCRIPT_PATH=" $ARG_LIB_SCRIPT_PATH "
6+
7+ MODULE_DIRECTORY=' ${ARG_MODULE_DIRECTORY}'
8+ WORKDIR=' ${ARG_WORKDIR}'
9+ INSTALL_AGENTAPI=' ${ARG_INSTALL_AGENTAPI}'
10+ AGENTAPI_VERSION=' ${ARG_AGENTAPI_VERSION}'
11+ WAIT_FOR_START_SCRIPT=$( echo -n ' ${ARG_WAIT_FOR_START_SCRIPT}' | base64 -d)
12+ AGENTAPI_PORT=' ${ARG_AGENTAPI_PORT}'
13+ AGENTAPI_CHAT_BASE_PATH=' ${ARG_AGENTAPI_CHAT_BASE_PATH}'
14+ TASK_ID=' ${ARG_TASK_ID}'
15+ TASK_LOG_SNAPSHOT=' ${ARG_TASK_LOG_SNAPSHOT}'
16+ ENABLE_STATE_PERSISTENCE=' ${ARG_ENABLE_STATE_PERSISTENCE}'
17+ STATE_FILE_PATH=' ${ARG_STATE_FILE_PATH}'
18+ PID_FILE_PATH=' ${ARG_PID_FILE_PATH}'
19+ LIB_SCRIPT=$( echo -n ' ${ARG_LIB_SCRIPT}' | base64 -d)
20+
1921set +o nounset
2022
23+ # Write and source lib.sh
24+ LIB_SCRIPT_PATH=" $$ {MODULE_DIRECTORY}/agentapi-lib.sh"
25+ echo -n " $LIB_SCRIPT " > " $LIB_SCRIPT_PATH "
2126# shellcheck source=lib.sh
22- source " ${ LIB_SCRIPT_PATH} "
27+ source " $LIB_SCRIPT_PATH "
2328
2429command_exists () {
2530 command -v " $1 " > /dev/null 2>&1
2631}
2732
28- mkdir -p " ${MODULE_DIRECTORY} /scripts"
33+ mkdir -p " $$ {MODULE_DIRECTORY}/scripts"
2934
3035# Check for jq dependency if task log snapshot is enabled.
3136if [[ $TASK_LOG_SNAPSHOT == true ]] && [[ -n $TASK_ID ]]; then
@@ -34,14 +39,14 @@ if [[ $TASK_LOG_SNAPSHOT == true ]] && [[ -n $TASK_ID ]]; then
3439 echo " Install jq to enable log snapshot functionality when the workspace stops."
3540 fi
3641fi
37- if [ ! -d " ${WORKDIR} " ]; then
38- echo " Warning: The specified folder '${WORKDIR} ' does not exist."
42+ if [ ! -d " $$ {WORKDIR}" ]; then
43+ echo " Warning: The specified folder '$$ {WORKDIR}' does not exist."
3944 echo " Creating the folder..."
40- mkdir -p " ${WORKDIR} "
45+ mkdir -p " $$ {WORKDIR}"
4146 echo " Folder created successfully."
4247fi
4348# Install AgentAPI if enabled
44- if [ " ${INSTALL_AGENTAPI} " = " true" ]; then
49+ if [ " $$ {INSTALL_AGENTAPI}" = " true" ]; then
4550 echo " Installing AgentAPI..."
4651 arch=$( uname -m)
4752 if [ " $arch " = " x86_64" ]; then
@@ -52,12 +57,12 @@ if [ "${INSTALL_AGENTAPI}" = "true" ]; then
5257 echo " Error: Unsupported architecture: $arch "
5358 exit 1
5459 fi
55- if [ " ${AGENTAPI_VERSION} " = " latest" ]; then
60+ if [ " $$ {AGENTAPI_VERSION}" = " latest" ]; then
5661 # for the latest release the download URL pattern is different than for tagged releases
5762 # https://docs.github.com/en/repositories/releasing-projects-on-github/linking-to-releases
5863 download_url=" https://github.com/coder/agentapi/releases/latest/download/$binary_name "
5964 else
60- download_url=" https://github.com/coder/agentapi/releases/download/${AGENTAPI_VERSION} /$binary_name "
65+ download_url=" https://github.com/coder/agentapi/releases/download/$$ {AGENTAPI_VERSION}/$binary_name "
6166 fi
6267 curl \
6368 --retry 5 \
@@ -76,30 +81,30 @@ if ! command_exists agentapi; then
7681 exit 1
7782fi
7883
79- echo -n " ${WAIT_FOR_START_SCRIPT} " > " ${MODULE_DIRECTORY} /scripts/agentapi-wait-for-start.sh"
80- chmod +x " ${MODULE_DIRECTORY} /scripts/agentapi-wait-for-start.sh"
84+ echo -n " $$ {WAIT_FOR_START_SCRIPT}" > " $ $ {MODULE_DIRECTORY}/scripts/agentapi-wait-for-start.sh"
85+ chmod +x " $$ {MODULE_DIRECTORY}/scripts/agentapi-wait-for-start.sh"
8186
8287export LANG=en_US.UTF-8
8388export LC_ALL=en_US.UTF-8
8489
85- cd " ${WORKDIR} "
90+ cd " $$ {WORKDIR}"
8691
87- export AGENTAPI_CHAT_BASE_PATH=" ${AGENTAPI_CHAT_BASE_PATH:- } "
92+ export AGENTAPI_CHAT_BASE_PATH=" $$ {AGENTAPI_CHAT_BASE_PATH:-}"
8893# Disable host header check since AgentAPI is proxied by Coder (which does its own validation)
8994export AGENTAPI_ALLOWED_HOSTS=" *"
9095
91- export AGENTAPI_PID_FILE=" ${PID_FILE_PATH:- ${MODULE_DIRECTORY} / agentapi.pid} "
96+ export AGENTAPI_PID_FILE=" $$ {PID_FILE_PATH:-$ $ {MODULE_DIRECTORY}/agentapi.pid}"
9297# Only set state env vars when persistence is enabled and the binary supports
9398# it. State persistence requires agentapi >= v0.12.0.
94- if [ " ${ENABLE_STATE_PERSISTENCE} " = " true" ]; then
99+ if [ " $$ {ENABLE_STATE_PERSISTENCE}" = " true" ]; then
95100 actual_version=$( agentapi_version)
96101 if version_at_least 0.12.0 " $actual_version " ; then
97- export AGENTAPI_STATE_FILE=" ${STATE_FILE_PATH:- ${MODULE_DIRECTORY} / agentapi-state.json} "
102+ export AGENTAPI_STATE_FILE=" $$ {STATE_FILE_PATH:-$ $ {MODULE_DIRECTORY}/agentapi-state.json}"
98103 export AGENTAPI_SAVE_STATE=" true"
99104 export AGENTAPI_LOAD_STATE=" true"
100105 else
101- echo " Warning: State persistence requires agentapi >= v0.12.0 (current: ${actual_version:- unknown} ), skipping."
106+ echo " Warning: State persistence requires agentapi >= v0.12.0 (current: $$ {actual_version:-unknown}), skipping."
102107 fi
103108fi
104- nohup " ${MODULE_DIRECTORY} /scripts/agentapi-start.sh" true " ${AGENTAPI_PORT} " & > " ${MODULE_DIRECTORY} /agentapi-start.log" &
105- " ${MODULE_DIRECTORY} /scripts/agentapi-wait-for-start.sh" " ${AGENTAPI_PORT} "
109+ nohup " $$ {MODULE_DIRECTORY}/scripts/agentapi-start.sh" true " $$ {AGENTAPI_PORT}" & > " $ $ {MODULE_DIRECTORY}/agentapi-start.log" &
110+ " $$ {MODULE_DIRECTORY}/scripts/agentapi-wait-for-start.sh" " $ $ {AGENTAPI_PORT}"
0 commit comments