Skip to main content

lib/host_kit/supervisor.ex

defmodule HostKit.Supervisor do
  @moduledoc "Top-level HostKit supervision tree."

  use Supervisor

  def start_link(opts \\ []) do
    Supervisor.start_link(__MODULE__, opts, name: __MODULE__)
  end

  @impl true
  def init(opts) do
    children = [
      HostKit.Agent.State,
      {HostKit.Package.Repology.RateLimit, Keyword.get(opts, :repology_rate_limit, [])},
      {HostKit.Agent.DriftWorker, Keyword.get(opts, :drift, [])},
      {HostKit.Agent.MonitorWorker, Keyword.get(opts, :monitor, [])}
    ]

    Supervisor.init(children, strategy: :one_for_one)
  end
end