Parent

Class Index [+]

Quicksearch

PhusionPassenger::AbstractInstaller

Abstract base class for installers. Used by passenger-install-apache2-module and passenger-install-nginx-module.

Constants

PASSENGER_WEBSITE
PHUSION_WEBSITE

Public Class Methods

new(options = {}) click to toggle source
    # File lib/phusion_passenger/abstract_installer.rb, line 36
36:         def initialize(options = {})
37:                 options.each_pair do |key, value|
38:                         instance_variable_set(:"@#{key}", value)
39:                 end
40:         end

Public Instance Methods

start() click to toggle source
    # File lib/phusion_passenger/abstract_installer.rb, line 42
42:         def start
43:                 install!
44:         ensure
45:                 reset_terminal_colors
46:         end

Private Instance Methods

check_dependencies() click to toggle source
     # 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
color_print(text) click to toggle source
    # 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
color_puts(text) click to toggle source
    # File lib/phusion_passenger/abstract_installer.rb, line 59
59:         def color_puts(text)
60:                 color_print("#{text}\n")
61:         end
dependencies() click to toggle source
     # File lib/phusion_passenger/abstract_installer.rb, line 126
126:         def dependencies
127:                 return []
128:         end
line() click to toggle source
    # File lib/phusion_passenger/abstract_installer.rb, line 73
73:         def line
74:                 puts "--------------------------------------------"
75:         end
new_screen() click to toggle source
    # File lib/phusion_passenger/abstract_installer.rb, line 67
67:         def new_screen
68:                 puts
69:                 line
70:                 puts
71:         end
prompt(message) click to toggle source
    # 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
render_template(name, options = {}) click to toggle source
    # 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
reset_terminal_colors() click to toggle source
    # File lib/phusion_passenger/abstract_installer.rb, line 49
49:         def reset_terminal_colors
50:                 STDOUT.write("\e[0m")
51:                 STDOUT.flush
52:         end
sh(*args) click to toggle source
     # 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
wait(timeout = nil) click to toggle source
     # 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.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.