about summary refs log tree commit homepage
path: root/bin
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2010-10-20 17:48:58 -0700
committerEric Wong <normalperson@yhbt.net>2010-10-21 00:49:36 +0000
commitd4a2b5dd2b85f4b2d3bb120ee1e1b0dde31bc25c (patch)
tree85866cc775a213216701ccaedf16061f15d13975 /bin
parenta085ba3586756ac1f778d2862f75889de2449b0e (diff)
downloadrainbows-d4a2b5dd2b85f4b2d3bb120ee1e1b0dde31bc25c.tar.gz
We get basic internal API changes from Unicorn,
code simplifications coming next.
Diffstat (limited to 'bin')
-rw-r--r--bin/rainbows35
1 files changed, 15 insertions, 20 deletions
diff --git a/bin/rainbows b/bin/rainbows
index 685dd09..b3606ac 100644
--- a/bin/rainbows
+++ b/bin/rainbows
@@ -5,16 +5,13 @@ require 'rainbows'
 require 'optparse'
 
 ENV["RACK_ENV"] ||= "development"
-daemonize = false
-listeners = []
-options = { :listeners => listeners }
-host, port = Unicorn::Const::DEFAULT_HOST, Unicorn::Const::DEFAULT_PORT
-set_listener = false
+rackup_opts = Unicorn::Configurator::RACKUP
+options = rackup_opts[:options]
 
 opts = OptionParser.new("", 24, '  ') do |opts|
-  opts.banner = "Usage: #{File.basename($0)} " \
-                "[ruby options] [unicorn options] [rackup config file]"
-
+  cmd = File.basename($0)
+  opts.banner = "Usage: #{cmd} " \
+                "[ruby options] [#{cmd} options] [rackup config file]"
   opts.separator "Ruby options:"
 
   lineno = 1
@@ -41,20 +38,20 @@ opts = OptionParser.new("", 24, '  ') do |opts|
     require library
   end
 
-  opts.separator "Rainbows!/Unicorn options:"
+  opts.separator "#{cmd} options:"
 
   # some of these switches exist for rackup command-line compatibility,
 
   opts.on("-o", "--host HOST",
           "listen on HOST (default: #{Unicorn::Const::DEFAULT_HOST})") do |h|
-    host = h
-    set_listener = true
+    rackup_opts[:host] = h
+    rackup_opts[:set_listener] = true
   end
 
   opts.on("-p", "--port PORT",
           "use PORT (default: #{Unicorn::Const::DEFAULT_PORT})") do |p|
-    port = p.to_i
-    set_listener = true
+    rackup_opts[:port] = p.to_i
+    rackup_opts[:set_listener] = true
   end
 
   opts.on("-E", "--env RACK_ENV",
@@ -63,7 +60,7 @@ opts = OptionParser.new("", 24, '  ') do |opts|
   end
 
   opts.on("-D", "--daemonize", "run daemonized in the background") do |d|
-    daemonize = d ? true : false
+    rackup_opts[:daemonize] = !!d
   end
 
   opts.on("-P", "--pid FILE", "DEPRECATED") do |f|
@@ -82,11 +79,10 @@ opts = OptionParser.new("", 24, '  ') do |opts|
           "listen on HOST:PORT or PATH",
           "this may be specified multiple times",
           "(default: #{Unicorn::Const::DEFAULT_LISTEN})") do |address|
-    listeners << address
+    options[:listeners] << address
   end
 
-  opts.on("-c", "--config-file FILE",
-          "Rainbows!/Unicorn-specific config file") do |f|
+  opts.on("-c", "--config-file FILE", "Rainbows!-specific config file") do |f|
     options[:config_file] = f
   end
 
@@ -111,16 +107,15 @@ opts = OptionParser.new("", 24, '  ') do |opts|
 end
 
 app = Unicorn.builder(ARGV[0] || 'config.ru', opts)
-listeners << "#{host}:#{port}" if set_listener
 
 if $DEBUG
   require 'pp'
   pp({
     :unicorn_options => options,
     :app => app,
-    :daemonize => daemonize,
+    :daemonize => rackup_opts[:daemonize],
   })
 end
 
-Unicorn::Launcher.daemonize!(options) if daemonize
+Unicorn::Launcher.daemonize!(options) if rackup_opts[:daemonize]
 Rainbows.run(app, options)