diff --git a/bin/ruby-local-exec b/bin/ruby-local-exec new file mode 100755 index 0000000..af7d7e1 --- /dev/null +++ b/bin/ruby-local-exec @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +# +# `ruby-local-exec` is a drop-in replacement for the standard Ruby +# shebang line: +# +# #!/usr/bin/env ruby-local-exec +# +# Use it for scripts inside a project with an `.rbenv-version` +# file. When you run the scripts, they'll use the project-specified +# Ruby version, regardless of what directory they're run from. Useful +# for e.g. running project tasks in cron scripts without needing to +# `cd` into the project first. + +set -e + +cwd="$(pwd)" +dirname="${1%/*}" + +cd "$dirname" +export RBENV_VERSION="$(rbenv version-name)" +cd "$cwd" + +exec ruby "$@"