diff options
author | Bodo Tasche <bodo@wannawork.de> | 2011-06-12 13:13:39 +0200 |
---|---|---|
committer | Hakan Ensari <hakan.ensari@papercavalier.com> | 2011-07-13 22:54:30 +0100 |
commit | 9e8194355c1a4f69dc52fbe2699fbce1be5c6493 (patch) | |
tree | 0cd78f9b873ac143e41c18bfbd04052ccd7365b0 | |
parent | 3552423de3d5ae439dc815b7f9c4cbeab3fbebe8 (diff) | |
download | zsh-9e8194355c1a4f69dc52fbe2699fbce1be5c6493.tar.gz zsh-9e8194355c1a4f69dc52fbe2699fbce1be5c6493.tar.bz2 zsh-9e8194355c1a4f69dc52fbe2699fbce1be5c6493.zip |
Added bundler-exec plugin
-rw-r--r-- | plugins/bundler-exec/bundler-exec.plugin.zsh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/plugins/bundler-exec/bundler-exec.plugin.zsh b/plugins/bundler-exec/bundler-exec.plugin.zsh new file mode 100644 index 000000000..966725976 --- /dev/null +++ b/plugins/bundler-exec/bundler-exec.plugin.zsh @@ -0,0 +1,37 @@ +# This plugin is based on https://github.com/gma/bundler-exec +# modify the BUNDLED_COMMANDS if needed + +BUNDLED_COMMANDS=(cucumber heroku rackup rails rake rspec ruby shotgun spec spork) + +## 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 |