method
shebang
v1_9_3_392 -
Show latest stable
- Class:
Gem::Installer
shebang(bin_file_name)public
Generates a #! line for bin_file_name's wrapper copying arguments if necessary.
# File lib/rubygems/installer.rb, line 362
def shebang(bin_file_name)
ruby_name = Gem::ConfigMap[:ruby_install_name] if @env_shebang
path = spec.bin_file bin_file_name
first_line = File.open(path, "rb") {|file| file.gets}
if /\A#!/ =~ first_line then
# Preserve extra words on shebang line, like "-w". Thanks RPA.
shebang = first_line.sub(/\A\#!.*?ruby\S*((\s+\S+)+)/, "#!#{Gem.ruby}")
opts = $1
shebang.strip! # Avoid nasty ^M issues.
end
if not ruby_name then
"#!#{Gem.ruby}#{opts}"
elsif opts then
"#!/bin/sh\n'exec' #{ruby_name.dump} '-x' \"$0\" \"$@\"\n#{shebang}"
else
# Create a plain shebang line.
@env_path ||= ENV_PATHS.find {|env_path| File.executable? env_path }
"#!#{@env_path} #{ruby_name}"
end
end Related methods
- Instance methods
- app_script_text
- build_extensions
- check_that_user_bin_dir_is_in_path
- dir
- ensure_dependencies_met
- ensure_dependency
- ensure_required_ruby_version_met
- ensure_required_rubygems_version_met
- extract_files
- format
- formatted_program_filename
- gem_dir
- generate_bin
- generate_bin_script
- generate_bin_symlink
- generate_windows_script
- install
- installation_satisfies_dependency?
- process_options
- shebang
- spec
- unpack
- verify_gem_home
- windows_stub_script
- write_spec
- Class methods
- exec_format
- new