Class: PuppetForgeServer::Server
- Inherits:
-
Object
- Object
- PuppetForgeServer::Server
- Includes:
- Utils::Http, Utils::OptionParser
- Defined in:
- lib/puppet_forge_server/server.rb
Instance Method Summary collapse
- #announce(options, backends) ⇒ Object
- #build(backends) ⇒ Object
- #go(args) ⇒ Object
- #logging(options) ⇒ Object
- #start(server, options) ⇒ Object
Methods included from Utils::Http
Methods included from Utils::OptionParser
Methods included from Utils::Url
Instance Method Details
#announce(options, backends) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/puppet_forge_server/server.rb', line 56 def announce(, backends) = .clone .default = 'default' @log.info " +- Daemonizing: #{options[:daemonize]}" @log.info " |- Port: #{options[:port]}" @log.info " |- Host: #{options[:hostname]}" @log.info " |- Pidfile: #{options[:pidfile]}" if [:pidfile] @log.info " |- Server: #{options[:server]}" @log.info ' `- Backends:' backends.each do |backend| @log.info " - #{backend.inspect}" end end |
#build(backends) ⇒ Object
49 50 51 52 53 54 |
# File 'lib/puppet_forge_server/server.rb', line 49 def build(backends) Rack::Mount::RouteSet.new do |set| set.add_route PuppetForgeServer::App::Version1.new(backends) set.add_route PuppetForgeServer::App::Version3.new(backends) end end |
#go(args) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/puppet_forge_server/server.rb', line 24 def go(args) begin = (args) @log = logging() backends = backends() server = build(backends) announce(, backends) start(server, ) rescue PuppetForgeServer::Errors::Expected @log.error error end end |
#logging(options) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/puppet_forge_server/server.rb', line 37 def logging() if [:log_dir] FileUtils.mkdir_p [:log_dir] server_loggers = [File.join([:log_dir], 'server.log')] server_loggers << STDERR if [:debug] access_loggers = [File.join([:log_dir], 'access.log')] access_loggers << STDERR if [:debug] PuppetForgeServer::Logger.set({:server => server_loggers, :access => access_loggers}) end PuppetForgeServer::Logger.get end |
#start(server, options) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/puppet_forge_server/server.rb', line 70 def start(server, ) FileUtils.mkdir_p File.dirname([:pidfile]) if [:pidfile] Rack::Server.start( :app => server, :Host => [:hostname], :Port => [:port], :server => [:server], :daemonize => [:daemonize], :pid => [:pidfile] ) end |