diff options
author | Michele Bologna <michele.bologna@gmail.com> | 2023-03-23 14:34:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-23 14:34:43 +0100 |
commit | c08b925d282e35ea7bd9a8f4c29de2ece0debb49 (patch) | |
tree | b898ef0b32fd37aefa42390eea7c5a7558912e3e | |
parent | 5efcfc39735c818a9778172356f82ec0eb3e5916 (diff) | |
download | zsh-c08b925d282e35ea7bd9a8f4c29de2ece0debb49.tar.gz zsh-c08b925d282e35ea7bd9a8f4c29de2ece0debb49.tar.bz2 zsh-c08b925d282e35ea7bd9a8f4c29de2ece0debb49.zip |
fix(uninstall): abort uninstall if unable to change shell (#10357)
-rw-r--r-- | tools/uninstall.sh | 23 |
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!" |