@awelkie Thanks!
For all shells except bash, we should set their configuration if we detect their presence at all on the system. For the moment, the two detection methods we use are $SHELL and whether their configuration files are detected.
Bash is different, because it will fall back to .profile if .bash_profile does not exist, so even if $SHELL == "bash", we can't create .bash_profile if it doesn't already exist, as then bash would stop looking in .profile, which would break things for the user.
So for fish, we want to add a file to ~/.config/fish/conf.d if either the fish config directory already exists, or if fish is the current shell.