Skip to content

Commit 22fd5f2

Browse files
khaliqgantclaude
andcommitted
fix: avoid cd/pwd subshells in path resolution to prevent terminal escape code pollution
zsh prompts with terminal title setting inject escape codes into pwd output, breaking cd-based path resolution. Use dirname string manipulation instead. Fall back to known paths if dirname fails. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 875628c commit 22fd5f2

1 file changed

Lines changed: 16 additions & 9 deletions

File tree

scripts/relay/relay.sh

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,23 @@ if [[ ${_relay_is_sourced} -eq 0 ]]; then
1414
set -euo pipefail
1515
fi
1616

17-
# Resolve script directory — works in both bash and zsh
18-
if [[ -n "${BASH_SOURCE[0]:-}" ]]; then
19-
SCRIPT_SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
20-
elif [[ -n "${(%):-%x}" ]]; then
21-
SCRIPT_SOURCE_DIR="$(cd "$(dirname "${(%):-%x}")" && pwd)"
22-
else
23-
SCRIPT_SOURCE_DIR="$(cd "$(dirname "$0")" && pwd)"
17+
# Resolve script directory — hardcoded to avoid shell escape code issues
18+
# when sourced from zsh with terminal title-setting prompts.
19+
SCRIPT_SOURCE_DIR="${SCRIPT_SOURCE_DIR:-$(dirname "${BASH_SOURCE[0]:-${(%):-%x}}" 2>/dev/null)}"
20+
# If dirname failed or returned garbage, fall back to a hardcoded default
21+
if [[ ! -d "${SCRIPT_SOURCE_DIR}" ]]; then
22+
# Try to find relay.sh relative to known paths
23+
for _candidate in \
24+
"${HOME}/Projects/AgentWorkforce/relayauth/scripts/relay" \
25+
"/Users/khaliqgant/Projects/AgentWorkforce/relayauth/scripts/relay"; do
26+
if [[ -f "${_candidate}/relay.sh" ]]; then
27+
SCRIPT_SOURCE_DIR="${_candidate}"
28+
break
29+
fi
30+
done
2431
fi
25-
RELAYAUTH_ROOT="${RELAYAUTH_ROOT:-$(cd "${SCRIPT_SOURCE_DIR}/../.." && pwd)}"
26-
RELAYFILE_ROOT="${RELAYFILE_ROOT:-$(cd "${RELAYAUTH_ROOT}/../relayfile" 2>/dev/null && pwd || true)}"
32+
RELAYAUTH_ROOT="${RELAYAUTH_ROOT:-$(dirname "$(dirname "${SCRIPT_SOURCE_DIR}")")}"
33+
RELAYFILE_ROOT="${RELAYFILE_ROOT:-$(dirname "${RELAYAUTH_ROOT}")/relayfile}"
2734
SCRIPT_DIR="${RELAYAUTH_ROOT}/scripts/relay"
2835
PARSE_CONFIG_TS="${SCRIPT_DIR}/parse-config.ts"
2936
SEED_ACL_TS="${SCRIPT_DIR}/seed-acl.ts"

0 commit comments

Comments
 (0)