Skip to content

Commit

Permalink
clean up children into a private function
Browse files Browse the repository at this point in the history
  • Loading branch information
zacksiri committed Jan 30, 2025
1 parent b77f48b commit 745280e
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 29 deletions.
59 changes: 31 additions & 28 deletions lib/uplink/application.ex
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,20 @@ defmodule Uplink.Application do
require Logger

def start(_type, _args) do
children = children(System.get_env("MIX_TASK"))

opts = [strategy: :one_for_one, name: Uplink.Supervisor]

Supervisor.start_link(children, opts)
end

defp children("opsmo.embed"), do: []

defp children(_) do
%{key: key, cert: cert} = Web.Certificate.generate()

topologies = Application.get_env(:libcluster, :topologies, [])

pipeline_supervisor_config =
Application.get_env(:uplink, @pipeline_supervisor, [])

Expand All @@ -26,33 +38,24 @@ defmodule Uplink.Application do
port = Keyword.get(router_config, :port)
internal_port = Keyword.get(internal_router_config, :port)

topologies = Application.get_env(:libcluster, :topologies, [])

children =
[
{Uplink.Cache, []},
{Cluster.Supervisor, [topologies, [name: Uplink.ClusterSupervisor]]},
{Task.Supervisor, name: Uplink.TaskSupervisor},
{Plug.Cowboy,
plug: Uplink.Internal, scheme: :http, port: internal_port},
{Pogo.DynamicSupervisor,
name: @pipeline_supervisor,
scope: :uplink,
sync_interval: sync_interval},
{Uplink.Monitors, []},
{
Plug.Cowboy,
plug: Uplink.Router,
scheme: :https,
port: port,
key: {:RSAPrivateKey, key},
cert: cert
},
{Uplink.Data.Provisioner, []},
Opsmo.spec(Opsmo.CRPM)
]

opts = [strategy: :one_for_one, name: Uplink.Supervisor]
Supervisor.start_link(children, opts)
[
{Uplink.Cache, []},
{Cluster.Supervisor, [topologies, [name: Uplink.ClusterSupervisor]]},
{Task.Supervisor, name: Uplink.TaskSupervisor},
{Plug.Cowboy, plug: Uplink.Internal, scheme: :http, port: internal_port},
{Pogo.DynamicSupervisor,
name: @pipeline_supervisor, scope: :uplink, sync_interval: sync_interval},
{Uplink.Monitors, []},
{
Plug.Cowboy,
plug: Uplink.Router,
scheme: :https,
port: port,
key: {:RSAPrivateKey, key},
cert: cert
},
{Uplink.Data.Provisioner, []},
Opsmo.spec(Opsmo.CRPM)
]
end
end
2 changes: 1 addition & 1 deletion mix.lock
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
"nimble_pool": {:hex, :nimble_pool, "1.1.0", "bf9c29fbdcba3564a8b800d1eeb5a3c58f36e1e11d7b7fb2e084a643f645f06b", [:mix], [], "hexpm", "af2e4e6b34197db81f7aad230c1118eac993acc0dae6bc83bac0126d4ae0813a"},
"nx": {:hex, :nx, "0.9.2", "17563029c01bf749aad3c31234326d7665abd0acc33ee2acbe531a4759f29a8a", [:mix], [{:complex, "~> 0.5", [hex: :complex, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "914d74741617d8103de8ab1f8c880353e555263e1c397b8a1109f79a3716557f"},
"oban": {:hex, :oban, "2.19.1", "fc376dcb04782973e384ce675539271363eef65222b23b2a8611e78c0744e5f7", [:mix], [{:ecto_sql, "~> 3.10", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:igniter, "~> 0.5", [hex: :igniter, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: true]}, {:myxql, "~> 0.7", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "5f27ba9e79b9af623dacd79d597504176e8a7d24f3f8b5570ead2f6cedd3c5ec"},
"opsmo": {:hex, :opsmo, "0.3.12", "0f36732b142c473e45b0fdf845e52e111469ec38c51a05d4945c22d3995b6ebd", [:mix], [{:axon, "~> 0.7", [hex: :axon, repo: "hexpm", optional: false]}, {:nx, "~> 0.9", [hex: :nx, repo: "hexpm", optional: false]}, {:req, "~> 0.5.0", [hex: :req, repo: "hexpm", optional: false]}, {:safetensors, "~> 0.1", [hex: :safetensors, repo: "hexpm", optional: false]}], "hexpm", "590afb32fc9cb17ae901bf7269f4f4eea70753d6cdc3331934d7ded4ec4fc352"},
"opsmo": {:hex, :opsmo, "0.3.13", "5b29fd2225bee02e8a07b93fd42e6990cfa4fb4778dbc15d44226820c3bc2b92", [:mix], [{:axon, "~> 0.7", [hex: :axon, repo: "hexpm", optional: false]}, {:nx, "~> 0.9", [hex: :nx, repo: "hexpm", optional: false]}, {:req, "~> 0.5.0", [hex: :req, repo: "hexpm", optional: false]}, {:safetensors, "~> 0.1", [hex: :safetensors, repo: "hexpm", optional: false]}], "hexpm", "ffce3ebf1c18e6ce48133c34e0cf06a04cfe8d1f946afde530360178914f27a1"},
"parse_trans": {:hex, :parse_trans, "3.4.1", "6e6aa8167cb44cc8f39441d05193be6e6f4e7c2946cb2759f015f8c56b76e5ff", [:rebar3], [], "hexpm", "620a406ce75dada827b82e453c19cf06776be266f5a67cff34e1ef2cbb60e49a"},
"plug": {:hex, :plug, "1.16.1", "40c74619c12f82736d2214557dedec2e9762029b2438d6d175c5074c933edc9d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a13ff6b9006b03d7e33874945b2755253841b238c34071ed85b0e86057f8cddc"},
"plug_cowboy": {:hex, :plug_cowboy, "2.7.2", "fdadb973799ae691bf9ecad99125b16625b1c6039999da5fe544d99218e662e4", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "245d8a11ee2306094840c000e8816f0cbed69a23fc0ac2bcf8d7835ae019bb2f"},
Expand Down

0 comments on commit 745280e

Please sign in to comment.