[rubygems/rubygems] allow bat files to be created alongside with script files on Windows

https://github.com/rubygems/rubygems/commit/ed5b847f03
This commit is contained in:
sodacris 2024-12-02 10:50:23 +08:00 committed by git
parent e18fb1281a
commit 55f2917cfd

View File

@ -235,10 +235,20 @@ module Spec
end
def create_file(path, contents = "")
contents = strip_whitespace(contents)
path = Pathname.new(path).expand_path(bundled_app) unless path.is_a?(Pathname)
path.dirname.mkpath
File.open(path.to_s, "w") do |f|
f.puts strip_whitespace(contents)
path.write(contents)
# if the file is a script, create respective bat file on Windows
if contents.start_with?("#!")
path.chmod(0o755)
if Gem.win_platform?
path.sub_ext(".bat").write <<~SCRIPT
@ECHO OFF
@"ruby.exe" "%~dpn0" %*
SCRIPT
end
end
end