Skip to content

Instantly share code, notes, and snippets.

@croaky
Created March 28, 2012 22:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save croaky/d4719ebbcf8bf4a8f69c to your computer and use it in GitHub Desktop.
Save croaky/d4719ebbcf8bf4a8f69c to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
echo 'Put Homebrew location earlier in PATH ...'
export_brew_path = "
# recommended by brew doctor
export PATH='/usr/local/bin/usr/local/sbin:$PATH'"
if [ "$SHELL" = '/bin/zsh' ]; then
echo export_brew_path >> ~/.zshenv
source ~/.zshrc
elif [ "$SHELL" = '/bin/bash' ]; then
echo export_brew_path >> ~/.bashrc
source ~/.bashrc
fi
echo 'Installing RVM (Ruby Version Manager) ...'
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
rvm_load_line "
# RVM
[[ -s '/Users/`whoami`/.rvm/scripts/rvm' ]] && source '/Users/`whoami`/.rvm/scripts/rvm'"
if [ "$SHELL" = '/bin/zsh' ]; then
echo rvm_load_line >> ~/.zshrc
source ~/.zshrc
elif [ "$SHELL" = '/bin/bash' ]; then
echo rvm_load_line >> ~/.bashrc
source ~/.bashrc
fi
@sikachu
Copy link

sikachu commented Mar 29, 2012

Dan, on line 9 I think you want to pipe to ~/.zshrc.

Also, you can try using $0 to get the current prompt. I think that would be what you want, as $SHELL returns /bin/bash for me even I'm running zsh (but I didn't chsh)

$0 for bash will return bash, and $0 for zsh will return -zsh (not sure about the leading hyphen.)

if [ $0 -eq '-zsh' ]
  ...

@JuanitoFatas
Copy link

@JuanitoFatas
Copy link

What if divide this two script into one for bash and another one for zsh (Exact same script except zshrc->bashrc). And in the README.md tell the bash user to grab bash one, and vice versa. Maybe a simple solution to avoid possible error occurs.

@mike-burns
Copy link

I'm a fan of:

if [ -n "$ZSH_VERSION" ]; then
   # zsh
elif [ -n "$BASH_VERSION" ]; then
   # bash
else
   # error
fi

zsh does not always load ~/.profile, so I wouldn't depend on that.

And, as always, I question whether this script you're writing needs to be a bash script instead of normal POSIX.

@sikachu
Copy link

sikachu commented Mar 29, 2012 via email

@telemachus
Copy link

This is probably just test code, but careful on line 6: you're missing a path separator

export PATH='/usr/local/bin/usr/local/sbin:$PATH'"

export PATH='/usr/local/bin:/usr/local/sbin:$PATH'"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment