Skip to content

Instantly share code, notes, and snippets.

@vbatts
Created August 18, 2011 23:11
Show Gist options
  • Save vbatts/1155510 to your computer and use it in GitHub Desktop.
Save vbatts/1155510 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
# set this, so that we bail on errors
set -e
# This is an RVM Project .rvmrc file, used to automatically load the ruby
# development environment upon cd'ing into the directory
this_ruby="ruby-1.9.3-preview1"
this_gemset="testset"
# First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
environment_id="${this_ruby}@${this_gemset}"
if ! rvm list strings | grep -q "${this_ruby}" ; then
do_inst="false"
echo "INFO: ${this_ruby} is not currently installed"
echo -ne "INFO: Do you want to install it now? [yN] : "
read resp
case "$resp" in
y)
do_inst="true"
;;
Y)
do_inst="true"
;;
esac
if [ "${do_inst}" == "true" ] ; then
rvm install ${this_ruby}
else
echo "INFO: not installing ${this_ruby}"
return
fi
fi
rvm use ${this_ruby}
if ! rvm gemset list strings | grep -qw ${this_gemset} ; then
rvm gemset create ${this_gemset}
rvm gemset use ${this_gemset}
fi
#
# First we attempt to load the desired environment directly from the environment
# file. This is very fast and efficicent compared to running through the entire
# CLI and selector. If you want feedback on which environment was used then
# insert the word 'use' after --create as this triggers verbose mode.
#
if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
&& -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]] ; then
\. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
[[ -s ".rvm/hooks/after_use" ]] && . ".rvm/hooks/after_use"
else
# If the environment file has not yet been created, use the RVM CLI to select.
rvm --create "$environment_id"
fi
#
# If you use an RVM gemset file to install a list of gems (*.gems), you can have
# it be automatically loaded. Uncomment the following and adjust the filename if
# necessary.
# To initially create this, run:
# $> rvm gemset export
# which will land a file like "default.gems"
#
filename=".gems"
if [[ -s "$filename" ]] ; then
rvm gemset import "$filename" | grep -v already | grep -v listed | grep -v complete | sed '/^$/d'
fi
#
# If you use bundler and would like to run bundle each time you enter the
# directory, you can uncomment the following code.
#
# # Ensure that Bundler is installed. Install it if it is not.
# if ! command -v bundle >/dev/null; then
# printf "The rubygem 'bundler' is not installed. Installing it now.\n"
# gem install bundler
# fi
#
# # Bundle while reducing excess noise.
# printf "Bundling your gems. This may take a few minutes on a fresh clone.\n"
# bundle | grep -v '^Using ' | grep -v ' is complete' | sed '/^$/d'
#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment