lib/web-puppet.rb in web-puppet-0.0.1 vs lib/web-puppet.rb in web-puppet-0.1.0
- old
+ new
@@ -29,7 +29,35 @@
response = Rack::Response.new
response.header['Content-Type'] = 'application/json'
response.write JSON.pretty_generate(data)
response.finish
end
+
+ def add_auth(conf)
+ application = Rack::Auth::Basic.new(self) do |username, password|
+ stored_username = conf.get_value('username')
+ username_check = stored_username ? stored_username == username : true
+ password_check = conf.get_value('password') == password
+ username_check && password_check
+ end
+ application.realm = 'Web Puppet'
+ application
+ end
+
+ def self.run!(options)
+ application = self.new
+
+ daemonize = options[:daemonize]
+ port = options[:port]
+
+ if options[:config]
+ conf = ParseConfig.new(options[:config])
+ application = application.add_auth(conf) if conf.get_value('password')
+ daemonize = conf.get_value('daemonize') ? conf.get_value('daemonize') == "true" : daemonize
+ port = conf.get_value('port') ? conf.get_value('port') : port
+ end
+
+ Rack::Server.new(:app => application, :Port => port, :daemonize => daemonize).start
+
+ end
end
end