Browse Source

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>
Zach Whitten 7 years ago
parent
commit
2e54ba2dfb
2 changed files with 22 additions and 6 deletions
  1. 7 0
      tools/install.sh
  2. 15 6
      tools/uninstall.sh

+ 7 - 0
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."

+ 15 - 6
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!"