bundler-exec.sh 722 B

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