#!/usr/bin/env bash

set -euo pipefail

source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"

main () (
    APP=nushell
    VERSION=${VERSION:-0.101.0}
    DEST=${XDG_DATA_HOME}/apps/releases/${APP}
    URL=https://github.com/nushell/nushell/releases/download/${VERSION}/nu-${VERSION}-$(uname -m)-$(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_os () (
    case $(uname -s) in
        Linux*)     echo unknown-linux-gnu;;
        Darwin*)    echo apple-darwin;;
        *)          >&2 echo "unsupported os: $(uname -s)"; exit 1;;
    esac
)

main "$@"