method
generate_bin
v2_6_3 -
Show latest stable
- Class:
Gem::Installer
generate_bin()public
No documentation available.
# File lib/rubygems/installer.rb, line 480
def generate_bin # :nodoc:
return if spec.executables.nil? or spec.executables.empty?
begin
Dir.mkdir @bin_dir, *[options[:dir_mode] && 0755].compact
rescue SystemCallError
raise unless File.directory? @bin_dir
end
raise Gem::FilePermissionError.new(@bin_dir) unless File.writable? @bin_dir
spec.executables.each do |filename|
filename.untaint
bin_path = File.join gem_dir, spec.bindir, filename
unless File.exist? bin_path
# TODO change this to a more useful warning
warn "`#{bin_path}` does not exist, maybe `gem pristine #{spec.name}` will fix it?"
next
end
mode = File.stat(bin_path).mode
dir_mode = options[:prog_mode] || (mode | 0111)
FileUtils.chmod dir_mode, bin_path unless dir_mode == mode
check_executable_overwrite filename
if @wrappers
generate_bin_script filename, @bin_dir
else
generate_bin_symlink filename, @bin_dir
end
end
end