Installs the nk CLI from nats-io/nkeys releases. The release zip nests everything under a nkeys-v<version>-<os>-<arch>/ directory (binary is named nk, not nkeys), so set_link points at that nested path rather than flattening the archive.
39 lines
871 B
Bash
Executable File
39 lines
871 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
# shellcheck disable=SC1091
|
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
|
|
|
APP=nkeys
|
|
VERSION=${VERSION:-0.4.16}
|
|
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
|
|
|
main() (
|
|
ARCHIVE_DIR=nkeys-v${VERSION}-$(get_os)-$(get_arch)
|
|
URL=https://github.com/nats-io/nkeys/releases/download/v${VERSION}/${ARCHIVE_DIR}.zip
|
|
|
|
extract_zip "${URL}" "${DEST}/${VERSION}"
|
|
set_current_link "${DEST}" "${VERSION}"
|
|
set_link "${XDG_BIN_HOME}/nk" "${DEST}" "${ARCHIVE_DIR}/nk"
|
|
)
|
|
|
|
get_arch () (
|
|
case $(uname -m) in
|
|
x86_64*) echo amd64 ;;
|
|
arm64*) echo arm64 ;;
|
|
aarch64*) echo arm64 ;;
|
|
*) >&2 echo "unsupported uname: $(uname -m)"; exit 1 ;;
|
|
esac
|
|
)
|
|
|
|
get_os () (
|
|
case $(uname -s) in
|
|
Linux*) echo linux ;;
|
|
Darwin*) echo darwin ;;
|
|
*) >&2 echo "unsupported os: $(uname -s)"; exit 1 ;;
|
|
esac
|
|
)
|
|
|
|
main "${@}"
|