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