| 
									
										
										
										
											2016-04-15 11:07:12 +03:00
										 |  |  | #!/usr/bin/env ruby | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require "rubygems" | 
					
						
							|  |  |  | require "bundler/setup" | 
					
						
							|  |  |  | require 'byebug' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | root = File.dirname(__FILE__) + '/..' | 
					
						
							|  |  |  | $:.push root | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $stdout = File.open(File::NULL, "w") | 
					
						
							|  |  |  | require "core/devops-service" | 
					
						
							|  |  |  | require "core/devops-config" | 
					
						
							|  |  |  | require "core/devops-routes" | 
					
						
							|  |  |  | DevopsConfig.read | 
					
						
							|  |  |  | DevopsService.init | 
					
						
							|  |  |  | $stdout = STDOUT | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Route | 
					
						
							|  |  |  |   attr_reader :verb, :human_path | 
					
						
							|  |  |  |   def initialize(verb, sinatra_route) | 
					
						
							|  |  |  |     @verb = verb | 
					
						
							|  |  |  |     @human_path = humanize(sinatra_route.first) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def humanize(route_regex) | 
					
						
							|  |  |  |     result = route_regex.to_s.sub!('(?-mix:\A\\', '').sub!('\z)','') | 
					
						
							|  |  |  |     result.gsub!('([^\/?#]+)', ":param") | 
					
						
							|  |  |  |     result.gsub!('\/', '/') | 
					
						
							|  |  |  |     result | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class AppRoutes | 
					
						
							|  |  |  |   attr_reader :prefix, :routes | 
					
						
							|  |  |  |   def initialize(prefix, routes) | 
					
						
							|  |  |  |     @prefix, @routes = prefix, routes | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def print | 
					
						
							|  |  |  |     sorted = @routes.sort_by(&:human_path) | 
					
						
							|  |  |  |     sorted.each do |route| | 
					
						
							|  |  |  |       puts "#{route.verb} #{@prefix}#{route.human_path}" | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |     puts "\n\n" | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | collections = Devops::Routes.routes.map do |prefix, app| | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |   routes = Devops::Api3.routes.map do |verb, sinatra_routes| | 
					
						
							| 
									
										
										
										
											2016-04-15 11:07:12 +03:00
										 |  |  |     sinatra_routes.map { |r|  Route.new(verb, r) } | 
					
						
							|  |  |  |   end.flatten | 
					
						
							|  |  |  |   AppRoutes.new(prefix, routes) | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # there isn't easy way to get routes by name | 
					
						
							|  |  |  | apps_order = %w(sidekiq client version backend) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if ARGV.first == 'all' | 
					
						
							|  |  |  |   apps_to_show = %w(sidekiq client version backend) | 
					
						
							|  |  |  | elsif ARGV.first | 
					
						
							|  |  |  |   apps_to_show = [ARGV.first] | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   apps_to_show = ['backend'] | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | apps_to_show.each do |app| | 
					
						
							|  |  |  |   collections[apps_order.index(app)].print | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 |