passenger 5.0.0.beta3 → 5.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (218) hide show
  1. checksums.yaml +8 -8
  2. checksums.yaml.gz.asc +7 -7
  3. data.tar.gz.asc +7 -7
  4. data/.editorconfig +11 -5
  5. data/CHANGELOG +38 -0
  6. data/CONTRIBUTING.md +1 -4
  7. data/Gemfile +0 -1
  8. data/Gemfile.lock +0 -2
  9. data/Rakefile +33 -33
  10. data/bin/passenger +1 -1
  11. data/bin/passenger-config +1 -1
  12. data/bin/passenger-install-apache2-module +800 -800
  13. data/bin/passenger-install-nginx-module +592 -592
  14. data/bin/passenger-memory-stats +127 -127
  15. data/bin/passenger-status +216 -216
  16. data/build/agents.rb +127 -127
  17. data/build/apache2.rb +87 -87
  18. data/build/basics.rb +60 -60
  19. data/build/common_library.rb +165 -165
  20. data/build/cplusplus_support.rb +51 -51
  21. data/build/cxx_tests.rb +268 -268
  22. data/build/debian.rb +143 -143
  23. data/build/documentation.rb +58 -58
  24. data/build/integration_tests.rb +81 -81
  25. data/build/misc.rb +132 -132
  26. data/build/nginx.rb +20 -20
  27. data/build/node_tests.rb +7 -7
  28. data/build/oxt_tests.rb +14 -14
  29. data/build/packaging.rb +570 -570
  30. data/build/preprocessor.rb +260 -260
  31. data/build/rake_extensions.rb +71 -71
  32. data/build/ruby_extension.rb +29 -29
  33. data/build/ruby_tests.rb +6 -6
  34. data/build/test_basics.rb +37 -37
  35. data/debian.template/control.template +3 -5
  36. data/dev/copy_boost_headers +134 -134
  37. data/dev/install_scripts_bootstrap_code.rb +25 -25
  38. data/dev/list_tests +20 -20
  39. data/dev/ruby_server.rb +223 -223
  40. data/dev/runner +18 -18
  41. data/doc/ServerOptimizationGuide.txt.md +55 -2
  42. data/doc/Users guide Nginx.txt +0 -26
  43. data/doc/Users guide Standalone.txt +5 -1
  44. data/doc/users_guide_snippets/tips.txt +9 -0
  45. data/ext/common/ApplicationPool2/Group.h +23 -11
  46. data/ext/common/ApplicationPool2/Implementation.cpp +32 -7
  47. data/ext/common/ApplicationPool2/Pool.h +22 -17
  48. data/ext/common/ApplicationPool2/SmartSpawner.h +4 -1
  49. data/ext/common/ApplicationPool2/Spawner.h +1 -1
  50. data/ext/common/Constants.h +1 -1
  51. data/ext/common/agents/Base.cpp +35 -20
  52. data/ext/common/agents/HelperAgent/Main.cpp +8 -1
  53. data/ext/common/agents/HelperAgent/OptionParser.h +18 -4
  54. data/ext/common/agents/HelperAgent/RequestHandler.h +2 -83
  55. data/ext/common/agents/HelperAgent/RequestHandler/ForwardResponse.cpp +54 -1
  56. data/ext/common/agents/HelperAgent/RequestHandler/InitRequest.cpp +7 -4
  57. data/ext/common/agents/Main.cpp +1 -1
  58. data/ext/common/agents/Watchdog/Main.cpp +54 -19
  59. data/ext/nginx/Configuration.c +7 -0
  60. data/ext/nginx/ContentHandler.c +9 -1
  61. data/helper-scripts/backtrace-sanitizer.rb +106 -87
  62. data/helper-scripts/crash-watch.rb +32 -0
  63. data/helper-scripts/download_binaries/extconf.rb +38 -38
  64. data/helper-scripts/meteor-loader.rb +107 -107
  65. data/helper-scripts/prespawn +101 -101
  66. data/helper-scripts/rack-loader.rb +96 -96
  67. data/helper-scripts/rack-preloader.rb +137 -137
  68. data/lib/phusion_passenger.rb +292 -292
  69. data/lib/phusion_passenger/abstract_installer.rb +438 -438
  70. data/lib/phusion_passenger/active_support3_extensions/init.rb +168 -170
  71. data/lib/phusion_passenger/admin_tools.rb +20 -20
  72. data/lib/phusion_passenger/admin_tools/instance.rb +178 -178
  73. data/lib/phusion_passenger/admin_tools/instance_registry.rb +61 -61
  74. data/lib/phusion_passenger/admin_tools/memory_stats.rb +267 -267
  75. data/lib/phusion_passenger/apache2/config_options.rb +182 -182
  76. data/lib/phusion_passenger/common_library.rb +479 -485
  77. data/lib/phusion_passenger/config/about_command.rb +161 -161
  78. data/lib/phusion_passenger/config/admin_command_command.rb +129 -129
  79. data/lib/phusion_passenger/config/agent_compiler.rb +121 -121
  80. data/lib/phusion_passenger/config/build_native_support_command.rb +43 -43
  81. data/lib/phusion_passenger/config/command.rb +25 -25
  82. data/lib/phusion_passenger/config/compile_agent_command.rb +62 -62
  83. data/lib/phusion_passenger/config/compile_nginx_engine_command.rb +88 -73
  84. data/lib/phusion_passenger/config/detach_process_command.rb +72 -72
  85. data/lib/phusion_passenger/config/download_agent_command.rb +246 -227
  86. data/lib/phusion_passenger/config/download_nginx_engine_command.rb +245 -224
  87. data/lib/phusion_passenger/config/install_agent_command.rb +144 -132
  88. data/lib/phusion_passenger/config/install_standalone_runtime_command.rb +205 -185
  89. data/lib/phusion_passenger/config/installation_utils.rb +204 -204
  90. data/lib/phusion_passenger/config/list_instances_command.rb +64 -64
  91. data/lib/phusion_passenger/config/main.rb +152 -152
  92. data/lib/phusion_passenger/config/nginx_engine_compiler.rb +319 -300
  93. data/lib/phusion_passenger/config/reopen_logs_command.rb +67 -67
  94. data/lib/phusion_passenger/config/restart_app_command.rb +155 -155
  95. data/lib/phusion_passenger/config/system_metrics_command.rb +13 -13
  96. data/lib/phusion_passenger/config/utils.rb +95 -95
  97. data/lib/phusion_passenger/config/validate_install_command.rb +198 -198
  98. data/lib/phusion_passenger/console_text_template.rb +25 -25
  99. data/lib/phusion_passenger/constants.rb +90 -90
  100. data/lib/phusion_passenger/debug_logging.rb +106 -106
  101. data/lib/phusion_passenger/loader_shared_helpers.rb +447 -432
  102. data/lib/phusion_passenger/message_channel.rb +312 -312
  103. data/lib/phusion_passenger/message_client.rb +176 -176
  104. data/lib/phusion_passenger/native_support.rb +369 -369
  105. data/lib/phusion_passenger/nginx/config_options.rb +297 -297
  106. data/lib/phusion_passenger/packaging.rb +131 -131
  107. data/lib/phusion_passenger/platform_info.rb +360 -360
  108. data/lib/phusion_passenger/platform_info/apache.rb +767 -767
  109. data/lib/phusion_passenger/platform_info/apache_detector.rb +199 -199
  110. data/lib/phusion_passenger/platform_info/binary_compatibility.rb +107 -107
  111. data/lib/phusion_passenger/platform_info/compiler.rb +570 -570
  112. data/lib/phusion_passenger/platform_info/curl.rb +32 -32
  113. data/lib/phusion_passenger/platform_info/cxx_portability.rb +188 -188
  114. data/lib/phusion_passenger/platform_info/depcheck.rb +372 -372
  115. data/lib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +109 -109
  116. data/lib/phusion_passenger/platform_info/depcheck_specs/compiler_toolchain.rb +4 -4
  117. data/lib/phusion_passenger/platform_info/depcheck_specs/gems.rb +10 -34
  118. data/lib/phusion_passenger/platform_info/depcheck_specs/libs.rb +101 -101
  119. data/lib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +5 -5
  120. data/lib/phusion_passenger/platform_info/depcheck_specs/utilities.rb +13 -13
  121. data/lib/phusion_passenger/platform_info/linux.rb +55 -55
  122. data/lib/phusion_passenger/platform_info/operating_system.rb +149 -149
  123. data/lib/phusion_passenger/platform_info/ruby.rb +468 -448
  124. data/lib/phusion_passenger/platform_info/zlib.rb +9 -9
  125. data/lib/phusion_passenger/plugin.rb +66 -66
  126. data/lib/phusion_passenger/preloader_shared_helpers.rb +126 -126
  127. data/lib/phusion_passenger/public_api.rb +191 -191
  128. data/lib/phusion_passenger/rack/out_of_band_gc.rb +93 -94
  129. data/lib/phusion_passenger/rack/thread_handler_extension.rb +231 -227
  130. data/lib/phusion_passenger/request_handler.rb +567 -577
  131. data/lib/phusion_passenger/request_handler/thread_handler.rb +379 -381
  132. data/lib/phusion_passenger/ruby_core_enhancements.rb +86 -86
  133. data/lib/phusion_passenger/ruby_core_io_enhancements.rb +74 -74
  134. data/lib/phusion_passenger/simple_benchmarking.rb +25 -25
  135. data/lib/phusion_passenger/standalone/app_finder.rb +153 -150
  136. data/lib/phusion_passenger/standalone/command.rb +44 -40
  137. data/lib/phusion_passenger/standalone/config_utils.rb +53 -53
  138. data/lib/phusion_passenger/standalone/control_utils.rb +38 -59
  139. data/lib/phusion_passenger/standalone/main.rb +73 -73
  140. data/lib/phusion_passenger/standalone/start_command.rb +697 -685
  141. data/lib/phusion_passenger/standalone/start_command/builtin_engine.rb +193 -155
  142. data/lib/phusion_passenger/standalone/start_command/nginx_engine.rb +162 -133
  143. data/lib/phusion_passenger/standalone/status_command.rb +64 -64
  144. data/lib/phusion_passenger/standalone/stop_command.rb +72 -72
  145. data/lib/phusion_passenger/standalone/version_command.rb +9 -9
  146. data/lib/phusion_passenger/union_station/connection.rb +32 -32
  147. data/lib/phusion_passenger/union_station/core.rb +251 -251
  148. data/lib/phusion_passenger/union_station/transaction.rb +126 -126
  149. data/lib/phusion_passenger/utils.rb +199 -167
  150. data/lib/phusion_passenger/utils/ansi_colors.rb +128 -128
  151. data/lib/phusion_passenger/utils/download.rb +196 -196
  152. data/lib/phusion_passenger/utils/file_system_watcher.rb +158 -158
  153. data/lib/phusion_passenger/utils/hosts_file_parser.rb +101 -101
  154. data/lib/phusion_passenger/utils/lock.rb +31 -31
  155. data/lib/phusion_passenger/utils/native_support_utils.rb +31 -31
  156. data/lib/phusion_passenger/utils/progress_bar.rb +26 -26
  157. data/lib/phusion_passenger/utils/shellwords.rb +20 -20
  158. data/lib/phusion_passenger/utils/terminal_choice_menu.rb +206 -206
  159. data/lib/phusion_passenger/utils/unseekable_socket.rb +272 -272
  160. data/lib/phusion_passenger/vendor/crash_watch/app.rb +129 -0
  161. data/lib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +341 -0
  162. data/lib/phusion_passenger/vendor/crash_watch/version.rb +24 -0
  163. data/lib/phusion_passenger/vendor/daemon_controller.rb +877 -0
  164. data/lib/phusion_passenger/vendor/daemon_controller/lock_file.rb +127 -0
  165. data/lib/phusion_passenger/vendor/daemon_controller/spawn.rb +26 -0
  166. data/lib/phusion_passenger/vendor/daemon_controller/version.rb +29 -0
  167. data/packaging/rpm/passenger_spec/passenger.spec.template +0 -1
  168. data/passenger.gemspec +0 -1
  169. data/resources/templates/config/nginx_engine_compiler/possible_solutions_for_download_and_extraction_problems.txt.erb +27 -0
  170. data/resources/templates/standalone/config.erb +19 -15
  171. data/test/integration_tests/apache2_tests.rb +566 -566
  172. data/test/integration_tests/downloaded_binaries_tests.rb +126 -125
  173. data/test/integration_tests/native_packaging_spec.rb +296 -296
  174. data/test/integration_tests/nginx_tests.rb +393 -393
  175. data/test/integration_tests/shared/example_webapp_tests.rb +282 -280
  176. data/test/integration_tests/source_packaging_test.rb +138 -138
  177. data/test/integration_tests/spec_helper.rb +5 -5
  178. data/test/integration_tests/standalone_tests.rb +367 -367
  179. data/test/ruby/debug_logging_spec.rb +133 -133
  180. data/test/ruby/message_channel_spec.rb +186 -186
  181. data/test/ruby/rack/loader_spec.rb +28 -28
  182. data/test/ruby/rack/preloader_spec.rb +34 -34
  183. data/test/ruby/rails3.0/loader_spec.rb +12 -12
  184. data/test/ruby/rails3.0/preloader_spec.rb +18 -18
  185. data/test/ruby/rails3.1/loader_spec.rb +12 -12
  186. data/test/ruby/rails3.1/preloader_spec.rb +18 -18
  187. data/test/ruby/rails3.2/loader_spec.rb +12 -12
  188. data/test/ruby/rails3.2/preloader_spec.rb +18 -18
  189. data/test/ruby/rails4.0/loader_spec.rb +12 -12
  190. data/test/ruby/rails4.0/preloader_spec.rb +18 -18
  191. data/test/ruby/rails4.1/loader_spec.rb +12 -12
  192. data/test/ruby/rails4.1/preloader_spec.rb +18 -18
  193. data/test/ruby/request_handler_spec.rb +730 -730
  194. data/test/ruby/shared/loader_sharedspec.rb +224 -224
  195. data/test/ruby/shared/rails/union_station_extensions_sharedspec.rb +327 -327
  196. data/test/ruby/shared/ruby_loader_sharedspec.rb +47 -47
  197. data/test/ruby/spec_helper.rb +65 -65
  198. data/test/ruby/standalone/runtime_installer_spec.rb +384 -384
  199. data/test/ruby/union_station_spec.rb +276 -276
  200. data/test/ruby/utils/file_system_watcher_spec.rb +220 -220
  201. data/test/ruby/utils/hosts_file_parser.rb +248 -248
  202. data/test/ruby/utils/tee_input_spec.rb +215 -215
  203. data/test/ruby/utils/unseekable_socket_spec.rb +57 -57
  204. data/test/ruby/utils_spec.rb +21 -21
  205. data/test/stub/rack/config.ru +87 -87
  206. data/test/stub/rack/library.rb +8 -8
  207. data/test/stub/rack/start.rb +30 -30
  208. data/test/support/apache2_controller.rb +191 -191
  209. data/test/support/nginx_controller.rb +90 -99
  210. data/test/support/placebo-preloader.rb +57 -57
  211. data/test/support/test_helper.rb +435 -435
  212. metadata +11 -21
  213. metadata.gz.asc +7 -7
  214. data/lib/phusion_passenger/standalone/command2.rb +0 -292
  215. data/lib/phusion_passenger/standalone/start2_command.rb +0 -799
  216. data/resources/templates/standalone/download_tool_missing.txt.erb +0 -18
  217. data/resources/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +0 -17
  218. data/resources/templates/standalone/run_installer_as_root.txt.erb +0 -8
@@ -33,138 +33,138 @@ PhusionPassenger.require_passenger_lib 'utils/progress_bar'
33
33
  PhusionPassenger.require_passenger_lib 'utils/tmpio'
34
34
 
35
35
  module PhusionPassenger
36
- module Config
36
+ module Config
37
37
 
38
- class AgentCompiler < AbstractInstaller
39
- protected
40
- def dependencies
41
- specs = [
42
- 'depcheck_specs/compiler_toolchain',
43
- 'depcheck_specs/ruby',
44
- 'depcheck_specs/gems',
45
- 'depcheck_specs/libs',
46
- 'depcheck_specs/utilities'
47
- ]
48
- ids = [
49
- 'cc',
50
- 'c++',
51
- 'rake',
52
- 'libcurl-dev',
53
- 'openssl-dev',
54
- 'zlib-dev'
55
- ].compact
56
- return [specs, ids]
57
- end
38
+ class AgentCompiler < AbstractInstaller
39
+ protected
40
+ def dependencies
41
+ specs = [
42
+ 'depcheck_specs/compiler_toolchain',
43
+ 'depcheck_specs/ruby',
44
+ 'depcheck_specs/gems',
45
+ 'depcheck_specs/libs',
46
+ 'depcheck_specs/utilities'
47
+ ]
48
+ ids = [
49
+ 'cc',
50
+ 'c++',
51
+ 'rake',
52
+ 'libcurl-dev',
53
+ 'openssl-dev',
54
+ 'zlib-dev'
55
+ ].compact
56
+ return [specs, ids]
57
+ end
58
58
 
59
- def users_guide_path
60
- return PhusionPassenger.standalone_doc_path
61
- end
59
+ def users_guide_path
60
+ return PhusionPassenger.standalone_doc_path
61
+ end
62
62
 
63
- def users_guide_url
64
- return STANDALONE_DOC_URL
65
- end
63
+ def users_guide_url
64
+ return STANDALONE_DOC_URL
65
+ end
66
66
 
67
- def run_steps
68
- check_source_code_available!
69
- if !@force
70
- check_whether_os_is_broken
71
- check_whether_system_has_enough_ram
72
- InstallationUtils.check_for_download_tool!
73
- end
74
- check_dependencies(false) || abort
75
- puts
67
+ def run_steps
68
+ check_source_code_available!
69
+ if !@force
70
+ check_whether_os_is_broken
71
+ check_whether_system_has_enough_ram
72
+ InstallationUtils.check_for_download_tool!
73
+ end
74
+ check_dependencies(false) || abort
75
+ puts
76
76
 
77
- @destdir = InstallationUtils.find_or_create_writable_support_binaries_dir!
78
- confirm_enable_optimizations
79
- compile_agent
80
- end
77
+ @destdir = InstallationUtils.find_or_create_writable_support_binaries_dir!
78
+ confirm_enable_optimizations
79
+ compile_agent
80
+ end
81
81
 
82
- def before_install
83
- super
84
- if !@working_dir
85
- @working_dir = PhusionPassenger::Utils.mktmpdir("passenger-install.", PlatformInfo.tmpexedir)
86
- @owns_working_dir = true
87
- end
88
- end
82
+ def before_install
83
+ super
84
+ if !@working_dir
85
+ @working_dir = PhusionPassenger::Utils.mktmpdir("passenger-install.", PlatformInfo.tmpexedir)
86
+ @owns_working_dir = true
87
+ end
88
+ end
89
89
 
90
- def after_install
91
- super
92
- FileUtils.remove_entry_secure(@working_dir) if @owns_working_dir
93
- end
90
+ def after_install
91
+ super
92
+ FileUtils.remove_entry_secure(@working_dir) if @owns_working_dir
93
+ end
94
94
 
95
- private
96
- def check_source_code_available!
97
- if PhusionPassenger.build_system_dir.nil?
98
- puts "<red>Cannot compile agent binary</red>"
99
- puts
100
- puts "This #{PROGRAM_NAME} installation does not " +
101
- "come with any source code, so the agent binary cannot " +
102
- "be compiled. So instead, please try to download a " +
103
- "precompiled agent binary from the #{PROGRAM_NAME} website, " +
104
- "by running:\n\n" +
105
- " <b>passenger-config download-agent</b>"
106
- abort
107
- end
108
- end
95
+ private
96
+ def check_source_code_available!
97
+ if PhusionPassenger.build_system_dir.nil?
98
+ puts "<red>Cannot compile agent binary</red>"
99
+ puts
100
+ puts "This #{PROGRAM_NAME} installation does not " +
101
+ "come with any source code, so the agent binary cannot " +
102
+ "be compiled. So instead, please try to download a " +
103
+ "precompiled agent binary from the #{PROGRAM_NAME} website, " +
104
+ "by running:\n\n" +
105
+ " <b>passenger-config download-agent</b>"
106
+ abort
107
+ end
108
+ end
109
109
 
110
- def confirm_enable_optimizations
111
- if @auto
112
- if @optimize
113
- puts "Compiling with optimizations."
114
- else
115
- puts "Not compiling with optimizations."
116
- end
117
- else
118
- if @optimize
119
- puts "Compiling with optimizations."
120
- else
121
- new_screen
122
- render_template 'config/agent_compiler/confirm_enable_optimizations',
123
- :total_ram => total_ram_gb
124
- puts
125
- @optimize = prompt_confirmation('Compile with optimizations?')
126
- puts
127
- end
128
- end
129
- end
110
+ def confirm_enable_optimizations
111
+ if @auto
112
+ if @optimize
113
+ puts "Compiling with optimizations."
114
+ else
115
+ puts "Not compiling with optimizations."
116
+ end
117
+ else
118
+ if @optimize
119
+ puts "Compiling with optimizations."
120
+ else
121
+ new_screen
122
+ render_template 'config/agent_compiler/confirm_enable_optimizations',
123
+ :total_ram => total_ram_gb
124
+ puts
125
+ @optimize = prompt_confirmation('Compile with optimizations?')
126
+ puts
127
+ end
128
+ end
129
+ end
130
130
 
131
- def compile_agent
132
- puts "<banner>Compiling #{PROGRAM_NAME} agent...</banner>"
133
- progress_bar = ProgressBar.new
134
- e_working_dir = Shellwords.escape(@working_dir)
135
- args = "#{e_working_dir}/support-binaries/#{AGENT_EXE}" +
136
- " CACHING=false" +
137
- " OUTPUT_DIR=#{e_working_dir} "
138
- " OPTIMIZE=#{!!@optimize}"
139
- begin
140
- progress_bar.set(0)
141
- Dir.chdir(PhusionPassenger.build_system_dir) do
142
- InstallationUtils.run_rake_task!(args) do |progress, total|
143
- progress_bar.set(0.05 + (progress / total.to_f) * 0.95)
144
- end
145
- end
146
- progress_bar.set(1)
147
- ensure
148
- progress_bar.finish
149
- end
131
+ def compile_agent
132
+ puts "<banner>Compiling #{PROGRAM_NAME} agent...</banner>"
133
+ progress_bar = ProgressBar.new
134
+ e_working_dir = Shellwords.escape(@working_dir)
135
+ args = "#{e_working_dir}/support-binaries/#{AGENT_EXE}" +
136
+ " CACHING=false" +
137
+ " OUTPUT_DIR=#{e_working_dir} "
138
+ " OPTIMIZE=#{!!@optimize}"
139
+ begin
140
+ progress_bar.set(0)
141
+ Dir.chdir(PhusionPassenger.build_system_dir) do
142
+ InstallationUtils.run_rake_task!(args) do |progress, total|
143
+ progress_bar.set(0.05 + (progress / total.to_f) * 0.95)
144
+ end
145
+ end
146
+ progress_bar.set(1)
147
+ ensure
148
+ progress_bar.finish
149
+ end
150
150
 
151
- FileUtils.cp("#{@working_dir}/support-binaries/#{AGENT_EXE}",
152
- "#{@destdir}/#{AGENT_EXE}")
153
- puts "<green>Compilation finished!</green>"
154
- end
151
+ FileUtils.cp("#{@working_dir}/support-binaries/#{AGENT_EXE}",
152
+ "#{@destdir}/#{AGENT_EXE}")
153
+ puts "<green>Compilation finished!</green>"
154
+ end
155
155
 
156
- def total_ram_gb
157
- begin
158
- meminfo = File.read("/proc/meminfo")
159
- if meminfo =~ /^MemTotal: *(\d+) kB$/
160
- return sprintf("%.1f", $1.to_i / 1024 / 1024)
161
- end
162
- rescue Errno::ENOENT, Errno::EACCES
163
- # Don't do anything on systems without memory information.
164
- return nil
165
- end
166
- end
167
- end
156
+ def total_ram_gb
157
+ begin
158
+ meminfo = File.read("/proc/meminfo")
159
+ if meminfo =~ /^MemTotal: *(\d+) kB$/
160
+ return sprintf("%.1f", $1.to_i / 1024 / 1024)
161
+ end
162
+ rescue Errno::ENOENT, Errno::EACCES
163
+ # Don't do anything on systems without memory information.
164
+ return nil
165
+ end
166
+ end
167
+ end
168
168
 
169
- end # module Standalone
169
+ end # module Standalone
170
170
  end # module PhusionPassenger
@@ -26,53 +26,53 @@ PhusionPassenger.require_passenger_lib 'constants'
26
26
  PhusionPassenger.require_passenger_lib 'config/command'
27
27
 
28
28
  module PhusionPassenger
29
- module Config
29
+ module Config
30
30
 
31
- class BuildNativeSupportCommand < Command
32
- def run
33
- parse_options
34
- PhusionPassenger.require_passenger_lib 'native_support'
35
- end
31
+ class BuildNativeSupportCommand < Command
32
+ def run
33
+ parse_options
34
+ PhusionPassenger.require_passenger_lib 'native_support'
35
+ end
36
36
 
37
- private
38
- def self.create_option_parser(options)
39
- PhusionPassenger.require_passenger_lib 'platform_info/ruby'
40
- OptionParser.new do |opts|
41
- nl = "\n" + ' ' * 37
42
- opts.banner = "Usage: passenger-config build-native-support [OPTIONS]\n"
43
- opts.separator ""
44
- opts.separator " #{PROGRAM_NAME} utilizes a Ruby native extension, called native_support,"
45
- opts.separator " for improving Ruby performance. The extension depends on the"
46
- opts.separator " #{PROGRAM_NAME} version and the Ruby version. Normally, every time you run"
47
- opts.separator " a #{PROGRAM_NAME} version with a Ruby version that it hasn't encountered"
48
- opts.separator " before, it will rebuild the native_support library for that Ruby version."
49
- opts.separator " By running this command, you can force the native_support to be built for"
50
- opts.separator " the current Ruby interpreter."
51
- opts.separator ""
52
- opts.separator " The current Ruby interpreter is:"
53
- opts.separator " Path: #{PlatformInfo.ruby_command}"
54
- opts.separator " Version: #{RUBY_VERSION}"
55
- opts.separator ""
37
+ private
38
+ def self.create_option_parser(options)
39
+ PhusionPassenger.require_passenger_lib 'platform_info/ruby'
40
+ OptionParser.new do |opts|
41
+ nl = "\n" + ' ' * 37
42
+ opts.banner = "Usage: passenger-config build-native-support [OPTIONS]\n"
43
+ opts.separator ""
44
+ opts.separator " #{PROGRAM_NAME} utilizes a Ruby native extension, called native_support,"
45
+ opts.separator " for improving Ruby performance. The extension depends on the"
46
+ opts.separator " #{PROGRAM_NAME} version and the Ruby version. Normally, every time you run"
47
+ opts.separator " a #{PROGRAM_NAME} version with a Ruby version that it hasn't encountered"
48
+ opts.separator " before, it will rebuild the native_support library for that Ruby version."
49
+ opts.separator " By running this command, you can force the native_support to be built for"
50
+ opts.separator " the current Ruby interpreter."
51
+ opts.separator ""
52
+ opts.separator " The current Ruby interpreter is:"
53
+ opts.separator " Path: #{PlatformInfo.ruby_command}"
54
+ opts.separator " Version: #{RUBY_VERSION}"
55
+ opts.separator ""
56
56
 
57
- opts.separator "Options:"
58
- opts.on("-h", "--help", "Show this help") do
59
- options[:help] = true
60
- end
61
- end
62
- end
57
+ opts.separator "Options:"
58
+ opts.on("-h", "--help", "Show this help") do
59
+ options[:help] = true
60
+ end
61
+ end
62
+ end
63
63
 
64
- def help
65
- puts @parser
66
- end
64
+ def help
65
+ puts @parser
66
+ end
67
67
 
68
- def parse_options
69
- super
70
- if @argv.size > 0
71
- help
72
- abort
73
- end
74
- end
75
- end
68
+ def parse_options
69
+ super
70
+ if @argv.size > 0
71
+ help
72
+ abort
73
+ end
74
+ end
75
+ end
76
76
 
77
- end # module Config
77
+ end # module Config
78
78
  end # module PhusionPassenger
@@ -22,33 +22,33 @@
22
22
  # THE SOFTWARE.
23
23
 
24
24
  module PhusionPassenger
25
- module Config
25
+ module Config
26
26
 
27
- class Command
28
- def initialize(argv)
29
- @argv = argv.dup
30
- @options = self.class.create_default_options
31
- end
27
+ class Command
28
+ def initialize(argv)
29
+ @argv = argv.dup
30
+ @options = self.class.create_default_options
31
+ end
32
32
 
33
- private
34
- def self.create_default_options
35
- return {}
36
- end
33
+ private
34
+ def self.create_default_options
35
+ return {}
36
+ end
37
37
 
38
- def parse_options
39
- @parser = self.class.create_option_parser(@options)
40
- begin
41
- @parser.parse!(@argv)
42
- rescue OptionParser::ParseError => e
43
- STDERR.puts "*** ERROR: #{e}"
44
- abort @parser.to_s
45
- end
46
- if @options[:help]
47
- puts @parser
48
- exit
49
- end
50
- end
51
- end
38
+ def parse_options
39
+ @parser = self.class.create_option_parser(@options)
40
+ begin
41
+ @parser.parse!(@argv)
42
+ rescue OptionParser::ParseError => e
43
+ STDERR.puts "*** ERROR: #{e}"
44
+ abort @parser.to_s
45
+ end
46
+ if @options[:help]
47
+ puts @parser
48
+ exit
49
+ end
50
+ end
51
+ end
52
52
 
53
- end # module Config
53
+ end # module Config
54
54
  end # module PhusionPassenger
@@ -28,75 +28,75 @@ PhusionPassenger.require_passenger_lib 'config/agent_compiler'
28
28
  PhusionPassenger.require_passenger_lib 'utils/ansi_colors'
29
29
 
30
30
  module PhusionPassenger
31
- module Config
31
+ module Config
32
32
 
33
- class CompileAgentCommand < Command
34
- include InstallationUtils
33
+ class CompileAgentCommand < Command
34
+ include InstallationUtils
35
35
 
36
- def run
37
- @options = { :auto => !STDIN.tty? || !STDOUT.tty?, :colorize => :auto, :force_tip => true }
38
- parse_options
39
- initialize_objects
40
- sanity_check
41
- if !AgentCompiler.new(@options).run
42
- abort
43
- end
44
- end
36
+ def run
37
+ @options = { :auto => !STDIN.tty? || !STDOUT.tty?, :colorize => :auto, :force_tip => true }
38
+ parse_options
39
+ initialize_objects
40
+ sanity_check
41
+ if !AgentCompiler.new(@options).run
42
+ abort
43
+ end
44
+ end
45
45
 
46
- private
47
- def self.create_option_parser(options)
48
- OptionParser.new do |opts|
49
- nl = "\n" + ' ' * 37
50
- opts.banner = "Usage: passenger-config compile-agent [OPTIONS]\n"
51
- opts.separator ""
52
- opts.separator " Compile the #{PROGRAM_NAME} agent binary. The agent binary is required for"
53
- opts.separator " #{PROGRAM_NAME} to function properly."
54
- opts.separator ""
46
+ private
47
+ def self.create_option_parser(options)
48
+ OptionParser.new do |opts|
49
+ nl = "\n" + ' ' * 37
50
+ opts.banner = "Usage: passenger-config compile-agent [OPTIONS]\n"
51
+ opts.separator ""
52
+ opts.separator " Compile the #{PROGRAM_NAME} agent binary. The agent binary is required for"
53
+ opts.separator " #{PROGRAM_NAME} to function properly."
54
+ opts.separator ""
55
55
 
56
- opts.separator "Options:"
57
- opts.on("--working-dir PATH", String, "Store temporary files in the given#{nl}" +
58
- "directory, instead of creating one") do |val|
59
- options[:working_dir] = val
60
- end
61
- opts.on("--auto", "Run in non-interactive mode. Default when#{nl}" +
62
- "stdin or stdout is not a TTY") do
63
- options[:auto] = true
64
- end
65
- opts.on("--optimize", "Compile agent with optimizations") do
66
- options[:optimize] = true
67
- end
68
- opts.on("-f", "--force", "Skip sanity checks") do
69
- options[:force] = true
70
- end
71
- opts.on("--no-force-tip", "Do not print any tips regarding the --force parameter") do
72
- options[:force_tip] = false
73
- end
74
- opts.on("-h", "--help", "Show this help") do
75
- options[:help] = true
76
- end
77
- end
78
- end
56
+ opts.separator "Options:"
57
+ opts.on("--working-dir PATH", String, "Store temporary files in the given#{nl}" +
58
+ "directory, instead of creating one") do |val|
59
+ options[:working_dir] = val
60
+ end
61
+ opts.on("--auto", "Run in non-interactive mode. Default when#{nl}" +
62
+ "stdin or stdout is not a TTY") do
63
+ options[:auto] = true
64
+ end
65
+ opts.on("--optimize", "Compile agent with optimizations") do
66
+ options[:optimize] = true
67
+ end
68
+ opts.on("-f", "--force", "Skip sanity checks") do
69
+ options[:force] = true
70
+ end
71
+ opts.on("--no-force-tip", "Do not print any tips regarding the --force parameter") do
72
+ options[:force_tip] = false
73
+ end
74
+ opts.on("-h", "--help", "Show this help") do
75
+ options[:help] = true
76
+ end
77
+ end
78
+ end
79
79
 
80
- def help
81
- puts @parser
82
- end
80
+ def help
81
+ puts @parser
82
+ end
83
83
 
84
- def initialize_objects
85
- @colors = Utils::AnsiColors.new(@options[:colorize])
86
- end
84
+ def initialize_objects
85
+ @colors = Utils::AnsiColors.new(@options[:colorize])
86
+ end
87
87
 
88
- def sanity_check
89
- return if @options[:force]
88
+ def sanity_check
89
+ return if @options[:force]
90
90
 
91
- if PhusionPassenger.find_support_binary(AGENT_EXE)
92
- puts "#{@colors.green}The #{PROGRAM_NAME} agent is already installed.#{@colors.reset}"
93
- if @options[:force_tip]
94
- puts "If you want to recompile it, re-run this program with the --force parameter."
95
- end
96
- exit
97
- end
98
- end
99
- end
91
+ if PhusionPassenger.find_support_binary(AGENT_EXE)
92
+ puts "#{@colors.green}The #{PROGRAM_NAME} agent is already installed.#{@colors.reset}"
93
+ if @options[:force_tip]
94
+ puts "If you want to recompile it, re-run this program with the --force parameter."
95
+ end
96
+ exit
97
+ end
98
+ end
99
+ end
100
100
 
101
- end # module Config
101
+ end # module Config
102
102
  end # module PhusionPassenger