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
 if [ "$confirmation" != y ] && [ "$confirmation" != Y ]; then
   echo "Uninstall cancelled"
@@ -25,16 +37,5 @@ else
   echo "No original zsh config found"
 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 "Don't forget to restart your terminal!"