dot-files/dot_local/bin/executable_install-nu
2026-05-09 07:59:23 -07:00

40 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
main () (
APP=nushell
VERSION=${VERSION:-0.112.2}
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
URL=https://github.com/nushell/nushell/releases/download/${VERSION}/nu-${VERSION}-$(get_arch)-$(get_os).tar.gz
PLUGIN_DIR=${XDG_CONFIG_HOME}/nushell/plugins
extract_tarball "${URL}" "${DEST}/${VERSION}" "--strip-component 1"
set_current_link "${DEST}" "${VERSION}"
set_link "${XDG_BIN_HOME}/nu" "${DEST}" nu
mkdir_if_missing "${PLUGIN_DIR}"
find "${DEST}" -type f -perm -111 -exec basename {} \; | grep plugin | while read -r plugin ; do
set_link "${PLUGIN_DIR}/${plugin}" "${DEST}" "${plugin}"
done
)
get_arch () (
case $(uname -m) in
arm64) echo aarch64 ;;
*) uname -m ;;
esac
)
get_os () (
case $(uname -s) in
Linux*) echo unknown-linux-gnu;;
Darwin*) echo apple-darwin;;
*) >&2 echo "unsupported os: $(uname -s)"; exit 1;;
esac
)
main "$@"