From 900afae41b00b27c6f1fc53044fe4ca917f09c81 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 5 Aug 2006 22:11:24 +0000 Subject: Added that you can change the web server port in config/lighttpd.conf from script/server --port/-p (closes #5465) [mats@imediatec.co.uk] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4676 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- railties/lib/commands/servers/lighttpd.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'railties/lib/commands/servers') diff --git a/railties/lib/commands/servers/lighttpd.rb b/railties/lib/commands/servers/lighttpd.rb index 1d5ca55f61..8908aec616 100644 --- a/railties/lib/commands/servers/lighttpd.rb +++ b/railties/lib/commands/servers/lighttpd.rb @@ -18,8 +18,10 @@ default_config_file = config_file = Pathname.new("#{RAILS_ROOT}/config/lighttpd. require 'optparse' detach = false +user_defined_active_port = nil ARGV.options do |opt| + opt.on("-p", "--port=port", "Changes the server.port number in the config/lighttpd.conf") { |port| command_line_port = port } opt.on('-c', "--config=#{config_file}", 'Specify a different lighttpd config file.') { |path| config_file = path } opt.on('-h', '--help', 'Show this message.') { puts opt; exit 0 } opt.on('-d', '-d', 'Call with -d to detach') { detach = true; puts "=> Configuration in config/lighttpd.conf" } @@ -41,6 +43,21 @@ unless File.exist?(config_file) FileUtils.cp(source, config_file) end +# open the config/lighttpd.conf file and add the current user defined port setting to it +if command_line_port + File.open(config_file, 'r+') do |config| + lines = config.readlines + + lines.each do |line| + line.gsub!(/^\s*server.port\s*=\s*(\d+)/, "server.port = #{command_line_port}") + end + + config.rewind + config.print(lines) + config.truncate(config.pos) + end +end + config = IO.read(config_file) default_port, default_ip = 3000, '0.0.0.0' port = config.scan(/^\s*server.port\s*=\s*(\d+)/).first rescue default_port -- cgit v1.2.3