diff --git a/dot_local/bin/executable_install-bun b/dot_local/bin/executable_install-bun new file mode 100755 index 0000000..eebfe41 --- /dev/null +++ b/dot_local/bin/executable_install-bun @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +set -euo pipefail + +# shellcheck disable=SC1091 +source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh" + +APP=bun +VERSION=${VERSION:-1.4.3} +DEST=${XDG_DATA_HOME}/apps/releases/${APP} + +main() ( + URL=https://github.com/oven-sh/bun/releases/download/bun-v${VERSION}/bun-$(get_os)-$(get_arch).zip + + # the archive wraps everything in a bun--/ dir; -j drops it + extract_zip "${URL}" "${DEST}/${VERSION}" "-j" + set_current_link "${DEST}" "${VERSION}" + set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}" + set_link "${XDG_BIN_HOME}/bunx" "${DEST}" "${APP}" +) + +get_arch() ( + case $(uname -m) in + x86_64*) echo x64 ;; + arm64*) echo aarch64 ;; + aarch64*) echo aarch64 ;; + *) + echo >&2 "unsupported architecture: $(uname -m)" + exit 1 + ;; + esac +) + +get_os() ( + case $(uname -s) in + Linux*) echo linux ;; + Darwin*) echo darwin ;; + *) + echo >&2 "unsupported os: $(uname -s)" + exit 1 + ;; + esac +) + +main "${@}"