devcontainers / devcontainers/cli
install.sh wrapper relative link not resolved correctly
- 主要言語
- TypeScript
- スター
- 3k
- フォーク
- 457
- 平均マージ
- 13時間 17分
- マージ済み PR(30日)
- 6
説明
I'm trying to create a generic install method for a dotfile/software install library I maintain. I want to install a link to the binary in `~/.local/bin/` and keep the devcontainers install under `~/.local/lib/devcontainers/`. The install takes care of this via the `--prefix ~/.local` argument.
The problem is that when I create a relative link called devcontainer from `~/.local/bin` to `~/.local/lib/devcontainers/bin/devcontainer` and then invoke the `devcontainer` executable, the generated bin file resolves the link as a relative link, rather than absolute.
Example install method:
```shell
INSTALL_DIR=$HOME/.local
curl -sSLO https://raw.githubusercontent.com/devcontainers/cli/main/scripts/install.sh
chmod +x install.sh
./install.sh --prefix "${INSTALL_DIR}"/lib/devcontainers
cd "${INSTALL_DIR}"/bin
ln -s ../lib/devcontainers/bin/devcontainer devcontainer
```
Example running `devcontainer` which is already in the PATH of `~/.local/bin/`
```shell
$devcontainer
/home/vasdee/.local/bin/devcontainer: line 18: cd: ../lib/devcontainers/bin: No such file or directory
```
In `~/.local/bin/devcontainer` i believe if the follow link logic preferred the full path option of `readlink`, over the relative (which is the opposite of how it is now) then the issue would be solved....at least for me
```shell
# Resolve the installation directory
# Handle both direct execution and symlinked scenarios
if [ -L "$0" ]; then
# Follow symlink current logic
SCRIPT_PATH="$(readlink "$0" 2>/dev/null || readlink -f "$0" 2>/dev/null || echo "$0")"
# Follow symlink potential fix by preferring the abs path over relative
# SCRIPT_PATH="$(readlink -f "$0" 2>/dev/null || readlink "$0" 2>/dev/null || echo "$0")"
else
SCRIPT_PATH="$0"
fi
```
I am happy to contribute a PR, but am not sure of the history behind this choice and what impact the change might have. I'm looking for guidance in that respect.
コントリビューションガイド
評価
この issue はまだ評価されていません。