diff --git a/install.sh b/install.sh index c5794b43..768b0877 100755 --- a/install.sh +++ b/install.sh @@ -1,5 +1,6 @@ #! /usr/bin/env bash + if [[ "${BASH_VERSION%%.*}" -eq 3 ]]; then echo "Atuin has limited support for Bash 3.2. The Atuin config enter_accept cannot be turned off." >&2 echo "To turn off enter_accept, please upgrade your version of bash (possibly via homebrew or ports)" >&2 @@ -20,13 +21,18 @@ Magical shell history Atuin setup https://github.com/atuinsh/atuin +https://forum.atuin.sh -Please file an issue if you encounter any problems! +Please file an issue or reach out on the forum if you encounter any problems! =============================================================================== EOF +__atuin_install_binary(){ + curl --proto '=https' --tlsv1.2 -LsSf https://github.com/atuinsh/atuin/releases/latest/download/atuin-installer.sh | sh +} + if ! command -v curl &> /dev/null; then echo "curl not installed. Please install curl." exit @@ -35,139 +41,8 @@ elif ! command -v sed &> /dev/null; then exit fi -__atuin_install_arch(){ - echo "Arch Linux detected!" - if command -v pacman &> /dev/null - then - echo "Installing with pacman" - sudo pacman -S atuin - else - echo "Attempting AUR install" - if command -v paru &> /dev/null; then - echo "Found paru" - paru -S atuin - elif command -v yaourt &> /dev/null; then - echo "Found yaourt" - yaourt -S atuin - elif command -v yay &> /dev/null; then - echo "Found yay" - yay -S atuin - elif command -v pakku &> /dev/null; then - echo "Found pakku" - pakku -S atuin - elif command -v pamac &> /dev/null; then - echo "Found pamac" - pamac install atuin - else - echo "Failed to install atuin! Please try manually: https://aur.archlinux.org/packages/atuin-git/" - fi - fi - -} - -__atuin_install_binary(){ - curl --proto '=https' --tlsv1.2 -LsSf https://github.com/atuinsh/atuin/releases/latest/download/atuin-installer.sh | sh -} - -__atuin_install_linux(){ - echo "Detected Linux!" - echo "Checking distro..." - if (uname -a | grep -qi "Microsoft"); then - OS="ubuntuwsl" - elif ! command -v lsb_release &> /dev/null; then - echo "lsb_release could not be found. Falling back to /etc/os-release" - OS="$(grep -Po '(?<=^ID=).*$' /etc/os-release | tr '[:upper:]' '[:lower:]')" 2>/dev/null - else - OS=$(lsb_release -i | awk '{ print $3 }' | tr '[:upper:]' '[:lower:]') - fi - case "$OS" in - "arch" | "manjarolinux" | "endeavouros") - __atuin_install_arch;; - "ubuntu" | "ubuntuwsl" | "debian" | "linuxmint" | "parrot" | "kali" | "elementary" | "pop" | "neon" | "tuxedo") - __atuin_install_binary;; - *) - __atuin_install_binary;; - esac -} - -__atuin_install_mac(){ - echo "Detected Mac!" - - if command -v brew &> /dev/null - then - echo "Installing with brew" - brew install atuin - else - echo "Could not find brew, installing a binary" - __atuin_install_binary - fi - -} - -__atuin_install_termux(){ - echo "Termux detected!" - - if command -v pkg &> /dev/null; then - echo "Installing with pkg" - pkg install atuin - else - echo "Could not find pkg" - __atuin_install_unsupported - fi -} - -__atuin_install_cargo(){ - echo "Attempting install with cargo" - - if ! command -v cargo &> /dev/null - then - echo "cargo not found! Attempting to install rustup" - - if command -v rustup &> /dev/null - then - echo "rustup was found, but cargo wasn't. Something is up with your install" - exit 1 - fi - - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -q - - echo "rustup installed! Attempting cargo install" - - fi - - # Log cargo and rustc versions for support - cargo --version - rustc --version - - cargo install atuin -} - -__atuin_install_unsupported(){ - echo "Unknown or unsupported OS or architecture" - echo "Please check the README at https://github.com/atuinsh/atuin for manual install instructions" - echo "If you have any problems, please open an issue!" - - while true; do - read -r -p "Do you wish to attempt an install with 'cargo'? [Y/N] " yn - case $yn in - [Yy]* ) __atuin_install_cargo; break;; - [Nn]* ) exit;; - * ) echo "Please answer yes or no.";; - esac - done -} - -# TODO: would be great to support others! -case "$OSTYPE" in - linux-android*) __atuin_install_termux ;; - linux*) __atuin_install_linux ;; - darwin*) __atuin_install_mac ;; - msys*) __atuin_install_unsupported ;; - solaris*) __atuin_install_unsupported ;; - bsd*) __atuin_install_unsupported ;; - *) __atuin_install_unsupported ;; -esac +__atuin_install_binary # TODO: Check which shell is in use # Use of single quotes around $() is intentional here @@ -201,10 +76,11 @@ cat << EOF Thanks for installing Atuin! I really hope you like it. -If you have any issues, please open an issue on GitHub or visit our Discord (https://discord.gg/jR3tfchVvW)! +If you have any issues, please open an issue on GitHub or visit our forum (https://forum.atuin.sh)! If you love Atuin, please give us a star on GitHub! It really helps ⭐️ https://github.com/atuinsh/atuin Please run "atuin register" to get setup with sync, or "atuin login" if you already have an account EOF +