mirror of
https://github.com/captn3m0/lightsaber.git
synced 2024-09-27 19:22:52 +00:00
30 lines
649 B
Ruby
30 lines
649 B
Ruby
require 'rubygems'
|
|
require 'bundler/setup'
|
|
require 'sinatra'
|
|
require 'yaml'
|
|
|
|
def get_url(domain_object, rel_route)
|
|
if domain_object.is_a? Hash
|
|
return domain_object['root'] + "/" + rel_route
|
|
elsif domain_object.is_a? String
|
|
return domain_object
|
|
end
|
|
end
|
|
|
|
get '/*' do
|
|
hostname = request.host
|
|
route = params[:splat][0]
|
|
|
|
YAML::load_file('redirects.yml').each do |code, zone|
|
|
if zone.has_key? hostname
|
|
url = get_url(zone[hostname], route)
|
|
if url
|
|
redirect url, code
|
|
else
|
|
halt 400, "Invalid configuration for #{hostname}"
|
|
end
|
|
end
|
|
end
|
|
|
|
halt 404, "#{hostname} hasn't been setup yet."
|
|
end |