bundler-exec.sh 963 B

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