Files
dotfiles/.config/yadm/bootstrap.d/zsh.sh
2022-09-29 18:50:08 +08:00

73 lines
2.0 KiB
Bash
Executable File

source $HOME/.zshenv
if ! command -v zsh &> /dev/null; then
echo 'Installing zsh'
if [[ "$OSNAME" == "Linux" ]]; then
# Linux
if [[ "$DISTRO_TYPE" == "debian" ]]; then
# Debian-based
sudo apt update
sudo apt install zsh -y
elif [[ "$DISTRO_TYPE" == "rpm" ]]; then
# RPM-based
echo 'ERROR: Currently unsupported'
echo 'Exiting...'
exit 1
elif [[ "$DISTRO_TYPE" == "arch" ]]; then
# Arch-based
echo 'ERROR: Currently unsupported'
echo 'Exiting...'
exit 1
else
# Unknown distro
echo 'ERROR: Unknown distro'
echo 'Exiting...'
exit 1
fi
elif [[ "$OSNAME" == "macOS" ]]; then
# macOS
brew install zsh
else
# Unknown
echo 'ERROR: Unknown OS'
echo 'Exiting...'
exit 1
fi
fi
echo 'zsh is installed'
if [[ "$OSNAME" == "Linux" ]]; then
# Linux
if [ ! $(awk -F: -v user="$USER" '$1 == user {print $NF}' /etc/passwd) = $(which zsh) ]; then
echo 'zsh is not default shell'
echo 'Setting zsh as default shell...'
sudo chsh -s $(which zsh) $(whoami)
fi
elif [[ "$OSNAME" == "macOS" ]]; then
# macOS
if [[ "$SHELL" == "/bin/zsh" ]]; then
echo 'Homebrew zsh is not default shell'
if ! brew list zsh > /dev/null ; then
# Homebrew zsh not installed
echo 'Installing zsh from Homebrew'
brew install zsh
fi
echo 'Homebrew zsh installed'
echo 'Setting Homebrew zsh as default shell...'
grep -qxF "$(brew --prefix zsh)/bin/zsh" /etc/shells || sudo bash -c "echo $(brew --prefix zsh)/bin/zsh >> /etc/shells"
sudo chsh -s "$(brew --prefix zsh)/bin/zsh" $(whoami)
fi
else
# Unknown
echo 'ERROR: Unknown OS'
echo 'Exiting...'
exit 1
fi
echo 'zsh is default shell'