1
0
Fork 0
mirror of https://github.com/benbusby/farside.git synced 2025-04-29 23:20:03 +00:00

Allow bypassing app router with FARSIDE_NO_ROUTER

Setting the aforementioned env var skips creation of the app router,
which is useful for running update.exs when the main app is already
running (otherwise there's a port conflict).
This commit is contained in:
Ben Busby 2021-11-15 20:09:34 -07:00
parent 5904c7cce4
commit d4581797e7
No known key found for this signature in database
GPG key ID: 339B7B7EB5333D14
4 changed files with 22 additions and 4 deletions

View file

@ -1,4 +1,5 @@
defmodule Farside.Application do
@farside_port Application.fetch_env!(:farside, :port)
@redis_conn Application.fetch_env!(:farside, :redis_conn)
@moduledoc false
@ -6,12 +7,22 @@ defmodule Farside.Application do
@impl true
def start(_type, _args) do
children = [
Plug.Cowboy.child_spec(scheme: :http, plug: Farside.Router, options: [port: 4001]),
{Redix, {@redis_conn, [name: :redix]}},
plug_children = [
Plug.Cowboy.child_spec(
scheme: :http,
plug: Farside.Router,
options: [
port: @farside_port
]
),
{PlugAttack.Storage.Ets, name: Farside.Throttle.Storage, clean_period: 60_000}
]
children = [
{Redix, {@redis_conn, [name: :redix]}} |
System.get_env("FARSIDE_NO_ROUTER") && [] || plug_children
]
opts = [strategy: :one_for_one, name: Farside.Supervisor]
Supervisor.start_link(children, opts)
end