bundler-exec.sh 645 B

1234567891011121314151617181920212223242526272829303132333435
  1. #!/bin/bash
  2. BUNDLED_COMMANDS="${BUNDLED_COMMANDS:-cap capify cucumber heroku rackup rails rake rspec ruby serve shotgun spec spork thin unicorn unicorn_rails}"
  3. ## Functions
  4. bundler-installed()
  5. {
  6. which bundle > /dev/null 2>&1
  7. }
  8. within-bundled-project()
  9. {
  10. local dir="$(pwd)"
  11. while [ "$(dirname $dir)" != "/" ]; do
  12. [ -f "$dir/Gemfile" ] && return
  13. dir="$(dirname $dir)"
  14. done
  15. false
  16. }
  17. run-with-bundler()
  18. {
  19. if bundler-installed && within-bundled-project; then
  20. bundle exec $@
  21. else
  22. $@
  23. fi
  24. }
  25. ## Main program
  26. for CMD in $BUNDLED_COMMANDS; do
  27. alias $CMD="run-with-bundler $CMD"
  28. done