bundler-exec.sh 655 B

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