mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2025-11-04 21:31:19 +08:00 
			
		
		
		
	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.
This commit is contained in:
		
							parent
							
								
									8e10ac4d73
								
							
						
					
					
						commit
						62216aaa8f
					
				@ -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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user