Abstract base class for installers. Used by passenger-install-apache2-module and passenger-install-nginx-module.
# File lib/phusion_passenger/abstract_installer.rb, line 130 130: def check_dependencies 131: new_screen 132: missing_dependencies = [] 133: color_puts "<banner>Checking for required software...</banner>" 134: puts 135: dependencies.each do |dep| 136: color_print " * #{dep.name}... " 137: result = dep.check 138: if result.found? 139: if result.found_at 140: color_puts "<green>found at #{result.found_at}</green>" 141: else 142: color_puts "<green>found</green>" 143: end 144: else 145: color_puts "<red>not found</red>" 146: missing_dependencies << dep 147: end 148: end 149: 150: if missing_dependencies.empty? 151: return true 152: else 153: puts 154: color_puts "<red>Some required software is not installed.</red>" 155: color_puts "But don't worry, this installer will tell you how to install them.\n" 156: color_puts "<b>Press Enter to continue, or Ctrl-C to abort.</b>" 157: if PhusionPassenger.natively_packaged? 158: wait(10) 159: else 160: wait 161: end 162: 163: line 164: puts 165: color_puts "<banner>Installation instructions for required software</banner>" 166: puts 167: missing_dependencies.each do |dep| 168: print_dependency_installation_instructions(dep) 169: puts 170: end 171: color_puts "If the aforementioned instructions didn't solve your problem, then please take" 172: color_puts "a look at the Users Guide:" 173: puts 174: color_puts " <yellow>#{users_guide}</yellow>" 175: return false 176: end 177: end
# File lib/phusion_passenger/abstract_installer.rb, line 54 54: def color_print(text) 55: STDOUT.write(ConsoleTextTemplate.new(:text => text).result) 56: STDOUT.flush 57: end
# File lib/phusion_passenger/abstract_installer.rb, line 59 59: def color_puts(text) 60: color_print("#{text}\n") 61: end
# File lib/phusion_passenger/abstract_installer.rb, line 126 126: def dependencies 127: return [] 128: end
# File lib/phusion_passenger/abstract_installer.rb, line 73 73: def line 74: puts "--------------------------------------------" 75: end
# File lib/phusion_passenger/abstract_installer.rb, line 67 67: def new_screen 68: puts 69: line 70: puts 71: end
# File lib/phusion_passenger/abstract_installer.rb, line 179 179: def print_dependency_installation_instructions(dep) 180: color_puts " * To install <yellow>#{dep.name}</yellow>:" 181: if !dep.install_command.nil? 182: color_puts " Please run <b>#{dep.install_command}</b> as root." 183: elsif !dep.install_instructions.nil? 184: color_puts " " << dep.install_instructions 185: elsif !dep.website.nil? 186: color_puts " Please download it from <b>#{dep.website}</b>" 187: if !dep.website_comments.nil? 188: color_puts " (#{dep.website_comments})" 189: end 190: else 191: color_puts " Search Google." 192: end 193: end
# File lib/phusion_passenger/abstract_installer.rb, line 77 77: def prompt(message) 78: done = false 79: while !done 80: color_print "#{message}: " 81: begin 82: result = STDIN.readline 83: rescue EOFError 84: exit 2 85: end 86: result.strip! 87: done = !block_given? || yield(result) 88: end 89: return result 90: rescue Interrupt 91: exit 2 92: end
# File lib/phusion_passenger/abstract_installer.rb, line 63 63: def render_template(name, options = {}) 64: puts ConsoleTextTemplate.new({ :file => name }, options).result 65: end
# File lib/phusion_passenger/abstract_installer.rb, line 49 49: def reset_terminal_colors 50: STDOUT.write("\e[0m") 51: STDOUT.flush 52: end
# File lib/phusion_passenger/abstract_installer.rb, line 114 114: def sh(*args) 115: puts "# #{args.join(' ')}" 116: result = system(*args) 117: if result 118: return true 119: elsif $?.signaled? && $?.termsig == Signal.list["INT"] 120: raise Interrupt 121: else 122: return false 123: end 124: end
# File lib/phusion_passenger/abstract_installer.rb, line 94 94: def wait(timeout = nil) 95: return if @auto 96: begin 97: if timeout 98: require 'timeout' unless defined?(Timeout) 99: begin 100: Timeout.timeout(timeout) do 101: STDIN.readline 102: end 103: rescue Timeout::Error 104: # Do nothing. 105: end 106: else 107: STDIN.readline 108: end 109: rescue Interrupt 110: exit 2 111: end 112: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.