Sha256: 72760deb9e35943b0d0c8a284c5bffc0292c2b3842ac026acbc75b33f9db4966
Contents?: true
Size: 1.92 KB
Versions: 3
Compression:
Stored size: 1.92 KB
Contents
module Hyla module Commands class Serve < Command def self.process(args, options) include WEBrick my_opts = options destination = options[:out_dir] my_opts[:Port] = options[:port] my_opts[:BindAddress] = options[:host] my_opts[:MimeTypes] = self.mime_types my_opts[:DoNotReverseLookupmy_opts] = true my_opts[:StartCallback] = start_callback(options[:detach]) my_opts[:AccessLog] = [] my_opts[:Logger] = Log::new([], Log::WARN) my_opts[:baseurl] = options[:baseurl] # recreate NondisclosureName under utf-8 circumstance fh_option = WEBrick::Config::FileHandler fh_option[:NondisclosureName] = ['.ht*','~*'] # Option added to allow to navigate into the directories fh_option[:FancyIndexing] = true #s = HTTPServer.new(webrick_options(my_opts)) s = HTTPServer.new(my_opts) s.mount(my_opts[:baseurl],HTTPServlet::FileHandler, destination, fh_option) Hyla.logger.info "Server address:", "http://#{s.config[:BindAddress]}:#{s.config[:Port]}" if options[:detach] # detach the server pid = Process.fork { s.start } Process.detach(pid) Hyla.logger.info "Server detatched with pid '#{pid}'.", "Run `kill -9 #{pid}' to stop the server." else # create a new server thread, then join it with current terminal t = Thread.new { s.start } trap("INT") { s.shutdown } t.join() end end def self.start_callback(detached) unless detached Proc.new { Hyla.logger.info "Server running...", "press ctrl-c to stop." } end end def self.mime_types mime_types_file = File.expand_path('../../../data/mime.types', File.dirname(__FILE__)) WEBrick::HTTPUtils::load_mime_types(mime_types_file) end end # class end # module Commands end # module Hyla
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
hyla-1.0.2 | lib/hyla/commands/serve.rb |
hyla-1.0.1 | lib/hyla/commands/serve.rb |
hyla-1.0 | lib/hyla/commands/serve.rb |