Files
atuin-mirror/install.sh
2025-11-10 14:49:41 -08:00

98 lines
3.1 KiB
Bash
Executable File

#! /bin/sh
set -eu
cat << EOF
_______ _______ __ __ ___ __ _
| _ || || | | || | | | | |
| |_| ||_ _|| | | || | | |_| |
| | | | | |_| || | | |
| | | | | || | | _ |
| _ | | | | || | | | | |
|__| |__| |___| |_______||___| |_| |__|
Magical shell history
Atuin setup
https://github.com/atuinsh/atuin
https://forum.atuin.sh
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
elif ! command -v sed > /dev/null; then
echo "sed not installed. Please install sed."
exit
fi
__atuin_install_binary
# TODO: Check which shell is in use
# Use of single quotes around $() is intentional here
# shellcheck disable=SC2016
if ! grep -q "atuin init zsh" "${ZDOTDIR:-$HOME}/.zshrc"; then
printf '\neval "$(atuin init zsh)"\n' >> "${ZDOTDIR:-$HOME}/.zshrc"
fi
# Use of single quotes around $() is intentional here
# shellcheck disable=SC2016
if ! grep -q "atuin init bash" ~/.bashrc; then
curl https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh -o ~/.bash-preexec.sh
printf '\n[[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh\n' >> ~/.bashrc
echo 'eval "$(atuin init bash)"' >> ~/.bashrc
fi
if [ -f "$HOME/.config/fish/config.fish" ]; then
# Check if the line already exists to prevent duplicates
if ! grep -q "atuin init fish" "$HOME/.config/fish/config.fish"; then
# Detect BSD or GNU sed
if sed --version >/dev/null 2>&1; then
# GNU
sed -i '/if status is-interactive/,/end/ s/end$/ atuin init fish | source\
end/' "$HOME/.config/fish/config.fish"
else
# BSD (macOS)
sed -i '' '/if status is-interactive/,/end/ s/end$/ atuin init fish | source\
end/' "$HOME/.config/fish/config.fish"
fi
fi
fi
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 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
Check out Atuin Desktop to build executable runbooks from your shell history - https://github.com/atuinsh/desktop
EOF