class Gem::Commands::SetupCommand
def install_executables(bin_dir)
def install_executables(bin_dir) say "Installing gem executable" if @verbose @bin_file_names = [] Dir.chdir 'bin' do bin_files = Dir['*'] bin_files.delete 'update_rubygems' bin_files.each do |bin_file| bin_file_formatted = if options[:format_executable] then Gem.default_exec_format % bin_file else bin_file end dest_file = File.join bin_dir, bin_file_formatted bin_tmp_file = File.join Dir.tmpdir, "#{bin_file}.#{$$}" begin bin = File.readlines bin_file bin[0] = "#!#{Gem.ruby}\n" File.open bin_tmp_file, 'w' do |fp| fp.puts bin.join end install bin_tmp_file, dest_file, :mode => 0755 @bin_file_names << dest_file ensure rm bin_tmp_file end next unless Gem.win_platform? begin bin_cmd_file = File.join Dir.tmpdir, "#{bin_file}.bat" File.open bin_cmd_file, 'w' do |file| file.puts <<-TEXT CHO OFF NOT "%~f0" == "~f0" GOTO :WinNT #{File.basename(Gem.ruby).chomp('"')}" "#{dest_file}" %1 %2 %3 %4 %5 %6 %7 %8 %9 TO :EOF inNT #{File.basename(Gem.ruby).chomp('"')}" "%~dpn0" %* XT end install bin_cmd_file, "#{dest_file}.bat", :mode => 0755 ensure rm bin_cmd_file end end end end