summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEllie Huxtable <ellie@elliehuxtable.com>2024-06-26 16:05:32 +0100
committerGitHub <noreply@github.com>2024-06-26 16:05:32 +0100
commitb07a03574b03711cdcec58f54cfb2ecfab172546 (patch)
treeec2e41d181aae597e48f93d09b8d94678793a413
parentcdd9a8034d0a91119f110bf31ba8672eb95f9143 (diff)
chore: do not use package managers in installer (#2201)
-rwxr-xr-xinstall.sh144
1 files changed, 10 insertions, 134 deletions
diff --git a/install.sh b/install.sh
index c5794b430..768b0877d 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
+