Browse Source

fix(uninstall): abort uninstall if unable to change shell (#10357)

Michele Bologna 1 year ago
parent
commit
c08b925d28
1 changed files with 12 additions and 11 deletions
  1. 12 11
      tools/uninstall.sh

+ 12 - 11
tools/uninstall.sh

@@ -1,3 +1,15 @@
+if hash chsh >/dev/null 2>&1 && [ -f ~/.shell.pre-oh-my-zsh ]; then
+  old_shell=$(cat ~/.shell.pre-oh-my-zsh)
+  echo "Switching your shell back to '$old_shell':"
+  if chsh -s "$old_shell"; then
+    rm -f ~/.shell.pre-oh-my-zsh
+  else
+    echo "Could not change default shell. Change it manually by running chsh"
+    echo "or editing the /etc/passwd file."
+    exit
+  fi
+fi
+
 read -r -p "Are you sure you want to remove Oh My Zsh? [y/N] " confirmation
 read -r -p "Are you sure you want to remove Oh My Zsh? [y/N] " confirmation
 if [ "$confirmation" != y ] && [ "$confirmation" != Y ]; then
 if [ "$confirmation" != y ] && [ "$confirmation" != Y ]; then
   echo "Uninstall cancelled"
   echo "Uninstall cancelled"
@@ -25,16 +37,5 @@ else
   echo "No original zsh config found"
   echo "No original zsh config found"
 fi
 fi
 
 
-if hash chsh >/dev/null 2>&1 && [ -f ~/.shell.pre-oh-my-zsh ]; then
-  old_shell=$(cat ~/.shell.pre-oh-my-zsh)
-  echo "Switching your shell back to '$old_shell':"
-  if chsh -s "$old_shell"; then
-    rm -f ~/.shell.pre-oh-my-zsh
-  else
-    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 "Thanks for trying out Oh My Zsh. It's been uninstalled."
 echo "Don't forget to restart your terminal!"
 echo "Don't forget to restart your terminal!"