Skip to content

Instantly share code, notes, and snippets.

@hedgehog
Created November 21, 2011 14:02
Show Gist options
  • Save hedgehog/1382695 to your computer and use it in GitHub Desktop.
Save hedgehog/1382695 to your computer and use it in GitHub Desktop.
rvmrc issue
#!/usr/bin/env bash
# This is an RVM Project .rvmrc file, used to automatically load the ruby
# development environment upon cd'ing into the directory
# First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
ruby_id='ruby-1.9.2-p290'
gemset_id='proj'
environment_id="${ruby_id}@${gemset_id}"
if rvm list strings | grep -q "${ruby_id}" ; then
#
# 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"
fi
if rvm gemset list | grep -q "${gemset_id}" ; then
# If the environment file has not yet been created, use the RVM CLI to select.
rvm use "$environment_id" --create
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.
#
filename="#{gemset_id}.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 globally. Install it if it is not.
#
rvm gemset use $environment_id
if ! command -v bundle >/dev/null; then
printf "The rubygem 'bundler' is not installed. Installing it now.\n"
gem install bundler --pre --no-ri --no-rdoc
fi
#
# Bundle while reducing excess noise.
#
printf "Bundling your gems. This may take a few minutes on a fresh clone.\n"
rvm gemset use $environment_id
bundle install --no-deployment --path vendor | grep -v '^Using ' | grep -v ' is complete' | sed '/^$/d'
else
#
# Notify the user of installation of the desired interpreter before proceeding.
#
echo "${ruby_id} was not found."
echo "Now installing Ruby: ${ruby_id}"
rvm install ${ruby_id} @>&1 | tee tmp/rvm_install_`date --universal +"%Y-%m-%d-%H-%M"`.log
if rvm gemset list | grep -q "${gemset_id}" ; then
# If the environment file has not yet been created, use the RVM CLI to select.
rvm --create use "$environment_id"
fi
echo "Now installing Gemset: ${gemset_id}"
filename="#{gemset_id}.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 --pre --no-ri --no-rdoc
fi
#
# Bundle while reducing excess noise.
#
printf "Bundling your gems. This may take a few minutes on a fresh clone.\n"
rvm gemset use $environment_id
bundle install --no-deployment --path vendor | grep -v '^Using ' | grep -v ' is complete' | sed '/^$/d'
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment