1
0

bundler-exec.sh 987 B

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