Skip to content

Instantly share code, notes, and snippets.

@glv
Created February 25, 2013 20:32
Show Gist options
  • Save glv/5033031 to your computer and use it in GitHub Desktop.
Save glv/5033031 to your computer and use it in GitHub Desktop.
Smart aliases to wrap commands in "bundle exec" for you when needed
# I source this from ~/.bash_profile
# I think I got them from @JEG2
BUNDLED_COMMANDS="foreman rackup rails rake rspec ruby shotgun spec watchr nesta cap"
## 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