fix(dist): resolve symlinks in the bundle launcher (curl install was broken)
install.sh symlinks ~/.local/bin/codegraph -> the bundle launcher, but the launcher derived its dir from $0, which is the symlink path — so it looked for `node` next to the symlink and failed with `exec: .../node: not found`. Follow the symlink chain to the real bundle dir first. (npm was unaffected — the shim invokes the launcher by absolute path.) Verified via the symlinked install path in a clean no-Node Linux container. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
cc1b13056b
commit
2759afa57b
+11
-1
@@ -78,7 +78,17 @@ else
|
||||
cp "$NODE_BIN" "$STAGE/node"
|
||||
cat > "$STAGE/bin/codegraph" <<'LAUNCH'
|
||||
#!/bin/sh
|
||||
DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
# Resolve symlinks (e.g. the ~/.local/bin/codegraph link install.sh creates) so
|
||||
# we find the real bundle dir, not the symlink's location.
|
||||
SELF="$0"
|
||||
while [ -L "$SELF" ]; do
|
||||
target="$(readlink "$SELF")"
|
||||
case "$target" in
|
||||
/*) SELF="$target" ;;
|
||||
*) SELF="$(dirname "$SELF")/$target" ;;
|
||||
esac
|
||||
done
|
||||
DIR="$(cd "$(dirname "$SELF")/.." && pwd)"
|
||||
exec "$DIR/node" "$DIR/lib/dist/bin/codegraph.js" "$@"
|
||||
LAUNCH
|
||||
chmod +x "$STAGE/bin/codegraph"
|
||||
|
||||
Reference in New Issue
Block a user