Module: ScmsServer

Includes:
WEBrick
Defined in:
lib/scms/scms-httpserver.rb

Class Method Summary collapse

Class Method Details

.start(root_document, port, hostname = "localhost") ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/scms/scms-httpserver.rb', line 8

def ScmsServer.start(root_document, port, hostname="localhost")

	portopen = ScmsUtils.port_open? hostname, port
	puts "Port Open: #{portopen}"

	if !portopen
		puts "Starting server: http://#{hostname}:#{port}"
		#:BindAddress
		server = HTTPServer.new(
			:DocumentRoot => root_document,
			:Port => port, 
			:BindAddress => hostname
		)

		mime_types_file = File.expand_path('../../assets/mime.types', File.dirname(__FILE__))
		WEBrick::HTTPUtils::load_mime_types(mime_types_file)

		trap("INT"){ 
		  puts "Closed http server"
		  server.shutdown
		  #exit!
		}
	else
		puts "Server already running on port: #{port}"
	end

	uri = "http://#{hostname}:#{port}"
	Launchy.open( uri ) do |exception|
	  puts "Attempted to open #{uri} and failed because #{exception}"
	end

	if !portopen
		begin
			server.start
		rescue SystemExit, Interrupt
			puts "Closing web brick"
			server.start
		rescue StandardError => e
			puts "StandardError"
			server.shutdown
		rescue Exception => e
			puts "scms-server exception"
			rais e
		end
	end
end