aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/commands/servers/thin.rb
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/commands/servers/thin.rb')
-rw-r--r--railties/lib/commands/servers/thin.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/railties/lib/commands/servers/thin.rb b/railties/lib/commands/servers/thin.rb
new file mode 100644
index 0000000000..833469cab1
--- /dev/null
+++ b/railties/lib/commands/servers/thin.rb
@@ -0,0 +1,25 @@
+require 'rbconfig'
+require 'commands/servers/base'
+require 'thin'
+
+
+options = ARGV.clone
+options.insert(0,'start') unless Thin::Runner.commands.include?(options[0])
+
+thin = Thin::Runner.new(options)
+
+puts "=> Rails #{Rails.version} application starting on http://#{thin.options[:address]}:#{thin.options[:port]}"
+puts "=> Ctrl-C to shutdown server"
+
+log = Pathname.new("#{File.expand_path(RAILS_ROOT)}/log/#{RAILS_ENV}.log").cleanpath
+open(log, (File::WRONLY | File::APPEND | File::CREAT)) unless File.exist? log
+tail_thread = tail(log)
+trap(:INT) { exit }
+
+begin
+ thin.run!
+ensure
+ tail_thread.kill if tail_thread
+ puts 'Exiting'
+end
+