add bin/routes script
This commit is contained in:
parent
785f00c928
commit
1afbbba129
71
devops-service/bin/routes.rb
Executable file
71
devops-service/bin/routes.rb
Executable file
@ -0,0 +1,71 @@
|
|||||||
|
#!/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|
|
||||||
|
routes = Devops::Api2.routes.map do |verb, sinatra_routes|
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user