summaryrefslogtreecommitdiff
path: root/tools/uninstall.sh
diff options
context:
space:
mode:
authorMichele Bologna <michele.bologna@gmail.com>2023-03-23 14:34:43 +0100
committerGitHub <noreply@github.com>2023-03-23 14:34:43 +0100
commitc08b925d282e35ea7bd9a8f4c29de2ece0debb49 (patch)
treeb898ef0b32fd37aefa42390eea7c5a7558912e3e /tools/uninstall.sh
parent5efcfc39735c818a9778172356f82ec0eb3e5916 (diff)
downloadzsh-c08b925d282e35ea7bd9a8f4c29de2ece0debb49.tar.gz
zsh-c08b925d282e35ea7bd9a8f4c29de2ece0debb49.tar.bz2
zsh-c08b925d282e35ea7bd9a8f4c29de2ece0debb49.zip
fix(uninstall): abort uninstall if unable to change shell (#10357)
Diffstat (limited to 'tools/uninstall.sh')
-rw-r--r--tools/uninstall.sh23
1 files changed, 12 insertions, 11 deletions
diff --git a/tools/uninstall.sh b/tools/uninstall.sh
index 6a0e7b4c7..6e3df7aca 100644
--- a/tools/uninstall.sh
+++ b/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!"