Skip to content

Instantly share code, notes, and snippets.

@samflores
Created September 1, 2011 14:11
Show Gist options
  • Save samflores/1186246 to your computer and use it in GitHub Desktop.
Save samflores/1186246 to your computer and use it in GitHub Desktop.
#!/bin/bash
BUNDLED_COMMANDS="cucumber heroku rackup rails irb rake rspec ruby shotgun spec spork guard ripl padrino"
## Functions
bundler-installed() {
which bundle > /dev/null 2>&1
}
within-bundled-project() {
local dir="$(pwd)"
while [ "$(dirname $dir)" != "/" ]; do
[ -f "$dir/Gemfile" ] && return
dir="$(dirname $dir)"
done
false
}
run-with-bundler() {
local command="$1"
shift
if bundler-installed && within-bundled-project; then
bundle exec $command "$@"
else
$command "$@"
fi
}
## Main program
for CMD in $BUNDLED_COMMANDS; do
alias $CMD="run-with-bundler $CMD"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment