Support recursive symlinks in release script
See https://github.com/cdr/code-server/issues/1746#issuecomment-637830396
This commit is contained in:
parent
206f195c1c
commit
02a77b528b
|
@ -1,26 +1,40 @@
|
|||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
# This script is intended to be bundled into the standalone releases.
|
||||
# Runs code-server with the bundled node binary.
|
||||
|
||||
# More complicated than readlink -f or realpath to support macOS.
|
||||
_realpath() {
|
||||
if [ "$(uname)" = "Linux" ]; then
|
||||
readlink -f "$1"
|
||||
return
|
||||
fi
|
||||
|
||||
# See https://github.com/cdr/code-server/issues/1537
|
||||
root_dir() {
|
||||
# We read the symlink, which may be relative from $0.
|
||||
dst="$(readlink "$0")"
|
||||
# We cd into the $0 directory.
|
||||
cd "$(dirname "$0")" || exit 1
|
||||
# Now we can cd into the directory above the dst directory which is the root
|
||||
# of the release.
|
||||
cd "$(dirname "$dst")/.." || exit 1
|
||||
# Finally we use pwd -P to print the absolute path the root.
|
||||
pwd -P || exit 1
|
||||
if [ "$(uname)" = "Darwin" ]; then
|
||||
# We read the symlink, which may be relative from $1.
|
||||
script="$1"
|
||||
if [ -L "$script" ]; then
|
||||
while [ -L "$script" ]; do
|
||||
script="$(readlink "$script")"
|
||||
cd "$(dirname "$script")"
|
||||
done
|
||||
else
|
||||
cd "$(dirname "$script")"
|
||||
fi
|
||||
|
||||
echo "$PWD/$(basename "$script")"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Unsupported OS $(uname)" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
ROOT="$(root_dir)"
|
||||
ROOT="$(dirname "$(dirname "$(_realpath "$0")")")"
|
||||
if [ "$(uname)" = "Linux" ]; then
|
||||
export LD_LIBRARY_PATH="$ROOT/lib:$LD_LIBRARY_PATH"
|
||||
export LD_LIBRARY_PATH="$ROOT/lib:${LD_LIBRARY_PATH-}"
|
||||
elif [ "$(uname)" = "Darwin" ]; then
|
||||
export DYLD_LIBRARY_PATH="$ROOT/lib:$DYLD_LIBRARY_PATH"
|
||||
export DYLD_LIBRARY_PATH="$ROOT/lib:${DYLD_LIBRARY_PATH-}"
|
||||
fi
|
||||
exec "$ROOT/lib/node" "$ROOT" "$@"
|
||||
|
|
Loading…
Reference in New Issue