summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2017-06-03 15:38:27 -0500
committerSamuel Giddins <segiddins@segiddins.me>2017-06-12 17:12:30 -0500
commit466d3a7344d02a7871e57038f74615181fcf77b7 (patch)
treed028322b1def3363b9e44294f8eaafbefb84e786
parente32353b063292427beccdb48fd8d6d0c74555911 (diff)
downloadbundler-466d3a7344d02a7871e57038f74615181fcf77b7.tar.gz
[Env] Print shebang when it doesnt match Gem.ruby
-rw-r--r--lib/bundler/env.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/bundler/env.rb b/lib/bundler/env.rb
index d78ee1f0c7..ec61b873cb 100644
--- a/lib/bundler/env.rb
+++ b/lib/bundler/env.rb
@@ -26,6 +26,14 @@ module Bundler
specs = Bundler.rubygems.find_name(name)
out << "#{name} (#{specs.map(&:version).join(",")})\n" unless specs.empty?
end
+ if (exe = caller.last.split(":").first) && exe =~ %r{(exe|bin)/bundler?\z}
+ shebang = File.read(exe).lines.first
+ shebang.sub!(/^#!\s*/, "")
+ unless shebang.start_with?(Gem.ruby, "/usr/bin/env ruby")
+ out << "Gem.ruby #{Gem.ruby}\n"
+ out << "bundle #! #{shebang}\n"
+ end
+ end
out << "```\n"