From c7e5c27b51154b3c3a164cf84f08425b2e00e1d8 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 9 Nov 2005 22:15:01 +0000 Subject: Added automatic browser launching on OS X when starting script/server [DHH] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2960 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- railties/CHANGELOG | 4 +++- railties/lib/commands/servers/lighttpd.rb | 5 +++-- railties/lib/commands/servers/webrick.rb | 3 ++- railties/lib/webrick_server.rb | 4 ++++ 4 files changed, 12 insertions(+), 4 deletions(-) (limited to 'railties') diff --git a/railties/CHANGELOG b/railties/CHANGELOG index 2abf4f9d9a..a053835eba 100644 --- a/railties/CHANGELOG +++ b/railties/CHANGELOG @@ -1,6 +1,8 @@ *SVN* -* Changed all script/* to use #!/usr/bin/env ruby instead of hard-coded Ruby path. public/dispatcher.* still uses the hard-coded path for compatibility with web servers that doesn't have Ruby in path [DHH] +* Added automatic browser launching on OS X when starting script/server [DHH] + +* Changed all script/* to use #!/usr/bin/env ruby instead of hard-coded Ruby path. public/dispatcher.* still uses the hard-coded path for compatibility with web servers that don't have Ruby in path [DHH] * Force RAILS_ENV to be "test" when running tests, so that ENV["RAILS_ENV"] = "production" in config/environment.rb doesn't wreck havok [DHH] #2660 diff --git a/railties/lib/commands/servers/lighttpd.rb b/railties/lib/commands/servers/lighttpd.rb index 0205e10c0a..6e3da4a9f8 100644 --- a/railties/lib/commands/servers/lighttpd.rb +++ b/railties/lib/commands/servers/lighttpd.rb @@ -52,5 +52,6 @@ else end) end -trap(:INT) {exit} -`lighttpd #{!detach ? "-D " : ""}-f #{config_file}` +trap(:INT) { exit } +Thread.new { sleep 0.5; `open http://0.0.0.0:#{port}` } if RUBY_PLATFORM =~ /darwin/ +`lighttpd #{!detach ? "-D " : ""}-f #{config_file}` \ No newline at end of file diff --git a/railties/lib/commands/servers/webrick.rb b/railties/lib/commands/servers/webrick.rb index db8e8b3d93..d06e3309bd 100644 --- a/railties/lib/commands/servers/webrick.rb +++ b/railties/lib/commands/servers/webrick.rb @@ -8,7 +8,8 @@ OPTIONS = { :server_root => File.expand_path(RAILS_ROOT + "/public/"), :server_type => WEBrick::SimpleServer, :charset => "UTF-8", - :mime_types => WEBrick::HTTPUtils::DefaultMimeTypes + :mime_types => WEBrick::HTTPUtils::DefaultMimeTypes, + :open_in_browser => true } ARGV.options do |opts| diff --git a/railties/lib/webrick_server.rb b/railties/lib/webrick_server.rb index f356eaf35e..74d5c08488 100644 --- a/railties/lib/webrick_server.rb +++ b/railties/lib/webrick_server.rb @@ -66,6 +66,10 @@ class DispatchServlet < WEBrick::HTTPServlet::AbstractServlet require File.join(@server_options[:server_root], "..", "config", "environment") unless defined?(RAILS_ROOT) require "dispatcher" + if options[:open_in_browser] && RUBY_PLATFORM =~ /darwin/ + Thread.new { sleep 0.5; `open http://#{options[:ip]}:#{options[:port]}` } + end + server.start end -- cgit v1.2.3