‰PNG  IHDR @ @ ªiqÞ pHYs   šœ —tEXtComment #!/usr/bin/env ruby # encoding: utf-8 # This script changes the bootstrap code for all Phusion Passenger commands, # as well as the Nginx module config script, so that they work no # matter which Ruby interpreter is currently in $PATH, and no matter how # Phusion Passenger is packaged. # # The bootstrap code must not add ruby_libdir to $LOAD_PATH. The active Ruby # can be *any* Ruby interpreter, maybe not even MRI. ruby_libdir belongs to # a Ruby interpreter installed by the distribution, and the files in it may # may be incompatible with the active Ruby. type = ARGV.shift if type == "--ruby" ruby_libdir = ARGV.shift BOOTSTRAP_CODE = %Q{ ENV["PASSENGER_LOCATION_CONFIGURATION_FILE"] = "#{ruby_libdir}/phusion_passenger/locations.ini" begin require 'rubygems' rescue LoadError end require '#{ruby_libdir}/phusion_passenger' } elsif type == "--nginx-module-config" bindir = ARGV.shift BOOTSTRAP_CODE = %Q{ PASSENGER_CONFIG=#{bindir}/passenger-config } else abort "Invalid type" end BOOTSTRAP_CODE.gsub!(/^ ( )?/, '').strip ARGV.each do |filename| File.open(filename, "r+") do |f| text = f.read text.sub!( /^## Magic comment: begin bootstrap ##.*## Magic comment: end bootstrap \#\#$/m, BOOTSTRAP_CODE) f.rewind f.truncate(0) f.write(text) end end