blob: 644e1314905b23d4fb02b48564b80426674c350e [file] [edit]
#!/bin/sh
# Install the GitLab CLI, `glab`, and `glab-axi`, an agent-ergonomic wrapper
# around it. Neither is provided by the distribution.
# See `Help/dev/devcontainer.rst`.
set -e
readonly glab_version="1.114.0"
readonly glab_axi_version="0.6.0"
case "$(uname -m)" in
x86_64)
arch="amd64"
sha256sum="00e892a80d586a1e8b8fdc035321923db99dce0caa3b0c4fd72c5337ffdb1c48"
;;
aarch64)
arch="arm64"
sha256sum="d34d7ddb96ce5e5f3423d7e8053cb14c36bd93984e4b96320f7e20a341b83498"
;;
*)
echo "Unsupported architecture: $(uname -m)" >&2
exit 1
;;
esac
readonly filename="glab_${glab_version}_linux_${arch}.tar.gz"
readonly baseurl="https://gitlab.com/gitlab-org/cli/-/releases/v${glab_version}/downloads"
cd /tmp
curl -L -o "$filename" "$baseurl/$filename"
echo "$sha256sum $filename" > glab.sha256sum
sha256sum --check glab.sha256sum
tar -C /usr/local -xzf "$filename" bin/glab
rm "$filename" glab.sha256sum
# Enable shell completion for interactive use.
mkdir -p /etc/bash_completion.d
/usr/local/bin/glab completion --shell bash > /etc/bash_completion.d/glab
# `glab-axi` is distributed only through npm. Its command surface is
# documented at https://axi.md.
npm install --global --no-audit --no-fund "glab-axi@${glab_axi_version}"