From 62216aaa8ff496cd1a086c70642b5fff9e7fa282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 24 May 2019 16:17:09 +0200 Subject: [PATCH] installer: use guard clauses in setup_shell for better readability Guard clauses are if constructs that return early if there is an error that prevents continuing. This way there isn't a big nesting of if expressions. --- tools/install.sh | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index 7eea2e748..4dc25b0e0 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -91,22 +91,23 @@ export ZSH=\"$ZSH\" } setup_shell() { - # If this user's login shell is not already "zsh", attempt to switch. - TEST_CURRENT_SHELL=$(basename "$SHELL") - if [ "$TEST_CURRENT_SHELL" != "zsh" ]; then - # If this platform provides a "chsh" command (not Cygwin), do it, man! - if command_exists chsh; then - echo "${BLUE}Time to change your default shell to zsh!${NORMAL}" - if ! chsh -s $(grep '^/.*/zsh$' /etc/shells | tail -1); then - error "chsh command unsuccessful. Change your default shell manually." - fi - # Else, suggest the user do so manually. - else - cat <<-EOF - I can't change your shell automatically because this system does not have chsh. - ${BLUE}Please manually change your default shell to zsh${NORMAL} - EOF - fi + # If this user's login shell is already "zsh", do not attempt to switch. + if [ "$(basename "$SHELL")" = "zsh" ]; then + return + fi + + # If this platform doesn't provide a "chsh" command, bail out. + if ! command_exists chsh; then + cat <<-EOF + I can't change your shell automatically because this system does not have chsh. + ${BLUE}Please manually change your default shell to zsh${NORMAL} + EOF + return + fi + + echo "${BLUE}Time to change your default shell to zsh!${NORMAL}" + if ! chsh -s $(grep '^/.*/zsh$' /etc/shells | tail -1); then + error "chsh command unsuccessful. Change your default shell manually." fi }