Commit 502f08b5 authored by Andrew Janke's avatar Andrew Janke Committed by Andrew Janke
Browse files

Add Cygwin support to installer.

* Balk at incompatible Windows/MSYS git
* Test for chsh presence before trying to use it
* Replace non-portable `[[ ... ]]` and `[ x = *pattern* ]` constructs
parent 3ea33841
...@@ -10,9 +10,21 @@ if [ -d "$ZSH" ]; then ...@@ -10,9 +10,21 @@ if [ -d "$ZSH" ]; then
fi fi
echo "\033[0;34mCloning Oh My Zsh...\033[0m" 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 || { hash git >/dev/null 2>&1 || {
echo "git not installed" echo "Error: git is not installed"
exit exit 1
}
# The Windows (MSYS) Git is not compatible with normal use on cygwin
if [ "$OSTYPE" = cygwin ]; then
if git --version | grep msysgit > /dev/null; then
echo "Error: Windows/MSYS Git is not supported on Cygwin"
echo "Error: Make sure the Cygwin git package is installed and is first on the path"
exit 1
fi
fi
env git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git $ZSH || {
echo "Error: git clone of oh-my-zsh repo failed"
exit 1
} }
echo "\033[0;34mLooking for an existing zsh config...\033[0m" echo "\033[0;34mLooking for an existing zsh config...\033[0m"
...@@ -34,8 +46,13 @@ export PATH=\"$PATH\" ...@@ -34,8 +46,13 @@ export PATH=\"$PATH\"
TEST_CURRENT_SHELL=$(expr "$SHELL" : '.*/\(.*\)') TEST_CURRENT_SHELL=$(expr "$SHELL" : '.*/\(.*\)')
if [ "$TEST_CURRENT_SHELL" != "zsh" ]; then if [ "$TEST_CURRENT_SHELL" != "zsh" ]; then
if hash chsh >/dev/null 2>&1; then
echo "\033[0;34mTime to change your default shell to zsh!\033[0m" echo "\033[0;34mTime to change your default shell to zsh!\033[0m"
chsh -s $(grep /zsh$ /etc/shells | tail -1) chsh -s $(grep /zsh$ /etc/shells | tail -1)
else
echo "I can't change your shell automatically because this system does not have chsh."
echo "Please edit /etc/passwd to set your default shell to zsh."
fi
fi fi
unset TEST_CURRENT_SHELL unset TEST_CURRENT_SHELL
......
echo "Removing ~/.oh-my-zsh" echo "Removing ~/.oh-my-zsh"
if [[ -d ~/.oh-my-zsh ]] if [ -d ~/.oh-my-zsh ]
then then
rm -rf ~/.oh-my-zsh rm -rf ~/.oh-my-zsh
fi fi
...@@ -20,9 +20,13 @@ then ...@@ -20,9 +20,13 @@ then
source ~/.zshrc; source ~/.zshrc;
else else
echo "Switching back to bash" if hash chsh >/dev/null 2>&1
chsh -s /bin/bash then
source /etc/profile echo "Switching back to bash"
chsh -s /bin/bash
else
echo "You can edit /etc/passwd to switch your default shell back to bash"
fi
fi fi
echo "Thanks for trying out Oh My Zsh. It's been uninstalled." echo "Thanks for trying out Oh My Zsh. It's been uninstalled."
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment