diff --git a/ci/code-server.sh b/ci/code-server.sh index cd76cc162267e6afd46371767e988193b62ddc20..0d28736a8967aa27bbc1f07e3eb5d066f3f4e39a 100755 --- a/ci/code-server.sh +++ b/ci/code-server.sh @@ -1,6 +1,18 @@ #!/usr/bin/env sh -# code-server.sh -- Run code-server with the bundled Node binary. +# Runs code-server with the bundled Node binary. -dir="$(dirname "$(readlink -f "$0" || realpath "$0")")" +# More complicated than readlink -f or realpath to support macOS. +# See https://github.com/cdr/code-server/issues/1537 +get_installation_dir() { + # We read the symlink, which may be relative from $0. + dst="$(readlink "$0")" + # We cd into the $0 directory. + cd "$(dirname "$0")" + # Now we can cd into the dst directory. + cd "$(dirname "$dst")" + # Finally we use pwd -P to print the absolute path of the directory of $dst. + pwd -P +} +dir=$(get_installation_dir) exec "$dir/node" "$dir/out/node/entry.js" "$@"