Commit 62216aaa authored by Marc Cornellà's avatar Marc Cornellà
Browse files

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.
parent 8e10ac4d
...@@ -91,22 +91,23 @@ export ZSH=\"$ZSH\" ...@@ -91,22 +91,23 @@ export ZSH=\"$ZSH\"
} }
setup_shell() { setup_shell() {
# If this user's login shell is not already "zsh", attempt to switch. # If this user's login shell is already "zsh", do not attempt to switch.
TEST_CURRENT_SHELL=$(basename "$SHELL") if [ "$(basename "$SHELL")" = "zsh" ]; then
if [ "$TEST_CURRENT_SHELL" != "zsh" ]; then return
# 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 fi
# Else, suggest the user do so manually.
else # If this platform doesn't provide a "chsh" command, bail out.
if ! command_exists chsh; then
cat <<-EOF cat <<-EOF
I can't change your shell automatically because this system does not have chsh. I can't change your shell automatically because this system does not have chsh.
${BLUE}Please manually change your default shell to zsh${NORMAL} ${BLUE}Please manually change your default shell to zsh${NORMAL}
EOF EOF
return
fi 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 fi
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment