fluke/devops-service/config.ru

36 lines
1.2 KiB
Plaintext
Raw Normal View History

2014-05-08 15:34:26 +04:00
# To run devops you can use command
# `bundle exec thin -R $devops_home/config.ru -e $env -d -p $port -t 600 -u $user --pid $pid_file --log $log_file start`
require 'rubygems'
require 'bundler/setup'
2014-10-22 15:01:55 +04:00
require "sidekiq/web"
2014-05-08 15:34:26 +04:00
root = File.dirname(__FILE__)
require File.join(root, "devops-service")
require File.join(root, "client")
2014-10-22 15:01:55 +04:00
require File.join(root, "report")
2014-11-13 13:13:53 +03:00
require File.join(root, "version")
2014-05-08 15:34:26 +04:00
# Read configuration file
config_file = File.join(root, "config.rb")
config = {}
if File.exists? config_file
eval File.read config_file
else
raise "No config file '#{config_file}' found"
end
2014-11-21 14:15:44 +03:00
config[:devops_dir] = File.join(ENV["HOME"], ".devops") if config[:devops_dir].nil?
2014-10-22 15:01:55 +04:00
2014-11-21 14:15:44 +03:00
config[:report_dir_v2] = File.expand_path(File.join(config[:devops_dir], "report", "v2")) unless config[:report_dir_v2]
2014-10-22 15:01:55 +04:00
[
2014-11-17 14:23:59 +03:00
:report_dir_v2
2014-10-22 15:01:55 +04:00
].each {|key| d = config[key]; FileUtils.mkdir_p(d) unless File.exists?(d) }
2014-05-08 15:34:26 +04:00
# URL map for API v2.0
run Rack::URLMap.new({
2014-10-22 15:01:55 +04:00
"#{config[:url_prefix]}/v2.0" => DevopsService.new(config),
"#{config[:url_prefix]}/client" => Client.new(config),
2014-11-21 12:55:07 +03:00
"#{config[:url_prefix]}/v2.0/report" => ReportRoutes.new(config, "v2"),
2014-11-13 13:13:53 +03:00
"#{config[:url_prefix]}/sidekiq" => Sidekiq::Web,
2014-11-20 15:08:42 +03:00
"#{config[:url_prefix]}/version" => DevopsVersion.new
2014-05-08 15:34:26 +04:00
})