summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZach Whitten <zwhitten@gmail.com>2017-10-13 14:33:22 -0400
committerMarc Cornellà <marc.cornella@live.com>2019-06-03 17:18:25 +0200
commit2e54ba2dfb95890c6ea32323ae14486ffc1c46ed (patch)
tree36fefd7050b99b34e0e2edf150b89f98b2eb45e4
parent66d6d08841ebde3610eaee961f63f8420e914d3b (diff)
downloadzsh-2e54ba2dfb95890c6ea32323ae14486ffc1c46ed.tar.gz
zsh-2e54ba2dfb95890c6ea32323ae14486ffc1c46ed.tar.bz2
zsh-2e54ba2dfb95890c6ea32323ae14486ffc1c46ed.zip
installer: restore previous default shell with uninstall
Co-authored-by: Antonio QUINTAVALLE <antonio.quintavalle@amadeus.com> Co-authored-by: Marc Cornellà <marc.cornella@live.com>
-rwxr-xr-xtools/install.sh7
-rw-r--r--tools/uninstall.sh21
2 files changed, 22 insertions, 6 deletions
diff --git a/tools/install.sh b/tools/install.sh
index 3f0e468fe..15c7b7703 100755
--- a/tools/install.sh
+++ b/tools/install.sh
@@ -184,6 +184,13 @@ setup_shell() {
fi
fi
+ # We're going to change the default shell, so back up the current one
+ if [ -n $SHELL ]; then
+ echo $SHELL > ~/.shell.pre-oh-my-zsh
+ else
+ grep "^$USER:" /etc/passwd | awk -F: '{print $7}' > ~/.shell.pre-oh-my-zsh
+ fi
+
# Actually change the default shell to zsh
if ! chsh -s "$zsh"; then
error "chsh command unsuccessful. Change your default shell manually."
diff --git a/tools/uninstall.sh b/tools/uninstall.sh
index 9793be2a1..da31a6a14 100644
--- a/tools/uninstall.sh
+++ b/tools/uninstall.sh
@@ -22,14 +22,23 @@ if [ -e "$ZSHRC_ORIG" ]; then
mv "$ZSHRC_ORIG" ~/.zshrc
- echo "Your original zsh config was restored. Please restart your session."
-else
- if hash chsh >/dev/null 2>&1; then
- echo "Switching back to bash"
- chsh -s /bin/bash
+ echo "Your original zsh config was restored."
+fi
+
+if hash chsh >/dev/null 2>&1; then
+ if [ -f ~/.shell.pre-oh-my-zsh ]; then
+ old_shell=$(cat ~/.shell.pre-oh-my-zsh)
+ else
+ old_shell=/bin/bash
+ fi
+ echo "Switching your shell back to '$old_shell':"
+ if chsh -s "$old_shell"; then
+ rm -f ~/.shell.pre-oh-my-zsh
else
- echo "You can edit /etc/passwd to switch your default shell back to bash"
+ echo "Could not change default shell. Change it manually by running chsh"
+ echo "or editing the /etc/passwd file."
fi
fi
echo "Thanks for trying out Oh My Zsh. It's been uninstalled."
+echo "Don't forget to restart your terminal!"