Current section
Files
Jump to
Current section
Files
lib/paraxial/application.ex
defmodule Paraxial.Application do
@moduledoc false
use Application
require Logger
alias Paraxial.Helpers
@impl true
def start(_type, _args) do
base_url = Helpers.get_base_url()
api_key = Helpers.get_api_key()
fetch_cloud_ips = Helpers.get_cloud_ips()
children =
cond do
is_nil(base_url) ->
Logger.warn("Paraxial URL not found, check configuration.")
[]
is_nil(api_key) ->
Logger.warn("Paraxial API key not found, check configuration.")
[]
true ->
Logger.info("Paraxial URL and API key found.")
[
Paraxial.HTTPBuffer,
Paraxial.Crow
]
end
case fetch_cloud_ips do
true ->
Logger.info("[Paraxial] :fetch_cloud_ips set to true, fetching...")
Paraxial.Fetcher.add_cloud_ips()
false ->
Logger.info("[Paraxial] :fetch_cloud_ips set to false. No request sent.")
:persistent_term.put({Paraxial.Fetcher, :cloud_trie}, Iptrie.new())
_ ->
Logger.info("[Paraxial] :fetch_cloud_ips not set. No request sent.")
:persistent_term.put({Paraxial.Fetcher, :cloud_trie}, Iptrie.new())
end
Logger.info("[Paraxial] Agent starting supervisor.")
opts = [strategy: :one_for_one, name: Paraxial.Supervisor]
Supervisor.start_link(children, opts)
end
end