bundle exec bash shortcut

Now that Rails 3 is out and everyone has switched to it, there’s a new bit of fun to get used to also: Bundler. If you want to run a command with your gems loaded, you’ll need to run bundle exec to get it to run. This can become quite repetitive

Like most programmers, I’m lazy. So lazy, in fact, I just couldn’t bear the thought of typing bundle exec (or be which I aliased to) so many times. Here’s a bash shortcut I came up with:

bundle_commands=( spec rspec cucumber cap watchr rails rackup )
function run_bundler_cmd () {
    if [ -e ./Gemfile ]; then
        echo "bundle exec $@"
        bundle exec $@
        echo "$@"
for cmd in $bundle_commands
    alias $cmd="run_bundler_cmd $cmd"

It looks for a Gemfile in the current working directory. If present, when you run one of the commands on in the bundle_commands variable then it will echo the command and then run it with bundle exec. It’s worked pretty well for me.

Update: As noted by Peter Wagenet in the comments, you can do bundle install --binstubs which will create a bin directory in the project root that does the same thing. Adding ./bin to your $PATH should accomplish the same thing.

Tags: , ,

This is the posts comments

  1. grosser September 17, 2010 at 7:45 pm #

    Great idea, takes all the usual extra thought out of running those commands, ill give it a try :)
    I usually just use be as shortcut, so “be rspec” would run rspec.
    Only drawback I can see is that one cannot opt-out from it, e.g. if I do not want to bundle cap and just use system cap.

  2. Graham Ashton September 17, 2010 at 8:39 pm #

    @grosser You can opt out; just type $(which rake) instead of rake…

    Nice script. I made something similar a while back, but beyond posting it to the relevant bundler bug report I didn’t bother to promote it. Sorry about that.


    It’s ever so slightly cleverer in that it searches for a Gemfile in the current directory’s parents too.

  3. Peter Wagenet September 18, 2010 at 5:36 am #

    Better yet, use “bundle install –binstubs” which will make a bin directory in your project with the right binaries.

    • jason September 23, 2010 at 4:19 pm #

      Thanks for the heads-up. I’ve updated the post.

      • Wojtek Kruszewski December 16, 2011 at 5:34 pm #

        Adding relative paths to $PATH is a bad habit (security-wise). In this particular case you’re already running binaries from random gems and their dogs so it won’t make matter worse – but it’s still a bad habit.

        • Wojtek Kruszewski December 16, 2011 at 5:39 pm #

          …so after switching from rvm to rbenv I’m going with your bash shortcut thank you very much (-:

  4. Rick October 25, 2011 at 5:33 am #

    Glad no one sees any problem with this insanity.

  5. Johne90 September 18, 2014 at 1:12 pm #

    Do you mind if I quote a few of your posts as long as I provide credit and sources back to your weblog? My blog is in the very same niche as yours and my users would truly benefit from a lot of the information you present here. Please let me know if this alright with you. Thank you! edkcdfeceaef

  6. Pharme4 September 21, 2014 at 11:02 pm #

    Very nice site! cheap goods

  7. Johnb6 October 4, 2014 at 5:26 am #

    Hey are using WordPress for your blog platform? I’m new to the blog world but I’m trying to get started and set up my own. Do you require any coding knowledge to make your own blog? Any help would be really appreciated! cbedkkgeecdg

  8. Lyn Deitz December 23, 2015 at 9:13 pm #

    Please add this to my plexo on my Valentine Gifts, What Offered and Blessings 2012 lens.

  9. Mohammad Kimmell January 22, 2016 at 6:51 am #

    it sometimes difficult to select the right kind of mens clothing but there are helpful buying guides on the internet~


  10. Nannette February 6, 2016 at 1:55 pm #

    Very good blog! Do you have any suggestions for aspiring writers?
    I’m hoping to start my own site soon but I’m a little lost on everything.
    Would you recommend starting with a free platform like WordPress or go for
    a paid option? There are so many choices out there that I’m completely confused ..
    Any suggestions? Appreciate it!

    my page Nannette

  11. aerial photography hull February 19, 2016 at 7:07 am #

    when it comes to absolutely free e mail, i discovered gmail to become the best and yahoo the worst~


  12. Freedom apk October 15, 2016 at 4:51 am #

    I am genuinely pleased to glance at this blog posts which consists of tons of
    helpful information, thanks for providing these information.


  1. Link dump for September 17th | The Queue Blog - September 18, 2010

    [...] bundle exec bash shortcut | Twistedmind – a bit of bash hackery that looks for a specific set of commands, given it's in a directory with bundler, to intercept and use bundle exec "said command" instead [...]

Post your comment