mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-12 21:39:48 +01:00
e8caf22beb
Installation previously assumed the existence of a "chsh" command in the current ${PATH}. Since Cygwin does *NOT* provide this command, installation now tests for the existence of this command before attempting to run it.
64 lines
2.6 KiB
Bash
Executable file
64 lines
2.6 KiB
Bash
Executable file
set -e
|
|
|
|
if [ ! -n "$ZSH" ]; then
|
|
ZSH=~/.oh-my-zsh
|
|
fi
|
|
|
|
if [ -d "$ZSH" ]; then
|
|
echo "\033[0;33mYou already have Oh My Zsh installed.\033[0m You'll need to remove $ZSH if you want to install"
|
|
exit
|
|
fi
|
|
|
|
# Prevent the cloned repository from having insecure permissions. Failing to do
|
|
# so causes compinit() calls to fail with "command not found: compdef" errors
|
|
# for users with insecure umasks (e.g., "002", allowing group writability). Note
|
|
# that this will be ignored under Cygwin by default, as Windows ACLs take
|
|
# precedence over umasks except for filesystems mounted with option "noacl".
|
|
umask g-w,o-w
|
|
|
|
echo "\033[0;34mCloning Oh My Zsh...\033[0m"
|
|
hash git >/dev/null 2>&1 && env git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git $ZSH || {
|
|
echo "git not installed"
|
|
exit
|
|
}
|
|
|
|
echo "\033[0;34mLooking for an existing zsh config...\033[0m"
|
|
if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]; then
|
|
echo "\033[0;33mFound ~/.zshrc.\033[0m \033[0;32mBacking up to ~/.zshrc.pre-oh-my-zsh\033[0m";
|
|
mv ~/.zshrc ~/.zshrc.pre-oh-my-zsh;
|
|
fi
|
|
|
|
echo "\033[0;34mUsing the Oh My Zsh template file and adding it to ~/.zshrc\033[0m"
|
|
cp $ZSH/templates/zshrc.zsh-template ~/.zshrc
|
|
sed -i -e "/^export ZSH=/ c\\
|
|
export ZSH=$ZSH
|
|
" ~/.zshrc
|
|
|
|
echo "\033[0;34mCopying your current PATH and adding it to the end of ~/.zshrc for you.\033[0m"
|
|
sed -i -e "/export PATH=/ c\\
|
|
export PATH=\"$PATH\"
|
|
" ~/.zshrc
|
|
|
|
# If this user's login shell is not already "zsh", attempt to switch.
|
|
if [ "$(expr "$SHELL" : '.*/\(.*\)')" != "zsh" ]; then
|
|
# If this platform provides a "chsh" command (not Cygwin), do it, man!
|
|
if hash chsh >/dev/null 2>&1; then
|
|
echo "\033[0;34mTime to change your default shell to zsh!\033[0m"
|
|
chsh -s $(grep /zsh$ /etc/shells | tail -1)
|
|
# Else, suggest the user do so manually.
|
|
else
|
|
echo "\033[0;34mPlease manually change your default shell to zsh!\033[0m"
|
|
fi
|
|
fi
|
|
|
|
echo "\033[0;32m"' __ __ '"\033[0m"
|
|
echo "\033[0;32m"' ____ / /_ ____ ___ __ __ ____ _____/ /_ '"\033[0m"
|
|
echo "\033[0;32m"' / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ '"\033[0m"
|
|
echo "\033[0;32m"'/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / '"\033[0m"
|
|
echo "\033[0;32m"'\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ '"\033[0m"
|
|
echo "\033[0;32m"' /____/ ....is now installed!'"\033[0m"
|
|
echo "\n\n \033[0;32mPlease look over the ~/.zshrc file to select plugins, themes, and options.\033[0m"
|
|
echo "\n\n \033[0;32mp.s. Follow us at http://twitter.com/ohmyzsh.\033[0m"
|
|
echo "\n\n \033[0;32mp.p.s. Get stickers and t-shirts at http://shop.planetargon.com.\033[0m"
|
|
env zsh
|
|
. ~/.zshrc
|