Skip to content

Commit 489be6c

Browse files
cameroncookeclaude
andcommitted
fix(portable): Resolve symlinked bin path for Homebrew installs
Make portable launcher wrappers resolve symlink targets before deriving resource paths. This keeps libexec lookup correct when binaries are invoked via /opt/homebrew/bin symlinks. Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 366abf7 commit 489be6c

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

scripts/package-macos-portable.sh

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,14 @@ EOF
169169
cat > "$bin_dir/xcodebuildmcp" <<'EOF'
170170
#!/usr/bin/env bash
171171
set -euo pipefail
172-
RESOURCE_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../libexec" && pwd)"
172+
SOURCE="${BASH_SOURCE[0]}"
173+
while [[ -L "$SOURCE" ]]; do
174+
DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)"
175+
SOURCE="$(readlink "$SOURCE")"
176+
[[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE"
177+
done
178+
SCRIPT_DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)"
179+
RESOURCE_ROOT="$(cd "$SCRIPT_DIR/../libexec" && pwd)"
173180
export XCODEBUILDMCP_RESOURCE_ROOT="$RESOURCE_ROOT"
174181
export DYLD_FRAMEWORK_PATH="$RESOURCE_ROOT/bundled/Frameworks${DYLD_FRAMEWORK_PATH:+:$DYLD_FRAMEWORK_PATH}"
175182
exec "$RESOURCE_ROOT/xcodebuildmcp" "$@"
@@ -178,7 +185,14 @@ EOF
178185
cat > "$bin_dir/xcodebuildmcp-doctor" <<'EOF'
179186
#!/usr/bin/env bash
180187
set -euo pipefail
181-
RESOURCE_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../libexec" && pwd)"
188+
SOURCE="${BASH_SOURCE[0]}"
189+
while [[ -L "$SOURCE" ]]; do
190+
DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)"
191+
SOURCE="$(readlink "$SOURCE")"
192+
[[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE"
193+
done
194+
SCRIPT_DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)"
195+
RESOURCE_ROOT="$(cd "$SCRIPT_DIR/../libexec" && pwd)"
182196
export XCODEBUILDMCP_RESOURCE_ROOT="$RESOURCE_ROOT"
183197
export DYLD_FRAMEWORK_PATH="$RESOURCE_ROOT/bundled/Frameworks${DYLD_FRAMEWORK_PATH:+:$DYLD_FRAMEWORK_PATH}"
184198
exec "$RESOURCE_ROOT/xcodebuildmcp" doctor "$@"

0 commit comments

Comments
 (0)