diff --git a/.gitignore b/.gitignore index 0126d78..87fe868 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,5 @@ erl_crash.dump # Ignore results from update script .update-result* + +*.rdb diff --git a/config/config.exs b/config/config.exs index 1c393cd..982990c 100644 --- a/config/config.exs +++ b/config/config.exs @@ -9,6 +9,7 @@ config :farside, previous_suffix: "-previous", services_json: "services.json", index: "index.eex", + route: "route.eex", headers: [ {"User-Agent", "Mozilla/5.0 (Linux x86_64; rv:94.0) Gecko/20100101 Firefox/94.0"}, {"Accept", "text/html"}, diff --git a/lib/farside/router.ex b/lib/farside/router.ex index e74f29e..c5e8567 100644 --- a/lib/farside/router.ex +++ b/lib/farside/router.ex @@ -1,5 +1,6 @@ defmodule Farside.Router do @index Application.fetch_env!(:farside, :index) + @route Application.fetch_env!(:farside, :route) use Plug.Router @@ -24,6 +25,19 @@ defmodule Farside.Router do send_resp(conn, 200, resp) end + get "/r/:service/*glob" do + r_path = String.slice(conn.request_path, 2..-1) + + resp = + EEx.eval_file( + @route, + service: service, + instance_url: r_path + ) + + send_resp(conn, 200, resp) + end + get "/:service/*glob" do path = Enum.join(glob, "/") instance = Farside.pick_instance(service) diff --git a/route.eex b/route.eex new file mode 100644 index 0000000..a06a265 --- /dev/null +++ b/route.eex @@ -0,0 +1,10 @@ + + Farside Redirect - <%= service %> + + + + + Redirecting to <%= service %> instance... +