Packages
nerves_hub_link
2.10.1
2.12.0
2.11.1
2.11.0
retired
2.10.2
2.10.1
2.10.0
2.9.0
2.9.0-rc.3
2.9.0-rc.2
2.9.0-rc.1
2.8.1
2.8.0
2.7.3
2.7.2
2.7.0
retired
2.6.0
2.5.2
2.5.1
2.5.0
2.4.0
2.3.0
2.2.1
2.2.0
2.1.1
2.1.0
2.0.0
1.4.1
1.4.0
1.3.0
1.2.0
1.1.0
1.0.1
1.0.0
0.13.1
0.13.0
0.12.1
0.12.0
0.11.0
0.10.2
0.10.1
retired
0.10.0
retired
0.10.0-rc.0
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.6
Manage your Nerves fleet by connecting it to NervesHub
Current section
Files
Jump to
Current section
Files
lib/nerves_hub_link/application.ex
# SPDX-FileCopyrightText: 2019 Jon Carstens
# SPDX-FileCopyrightText: 2023 Eric Oestrich
# SPDX-FileCopyrightText: 2024 Lars Wikman
#
# SPDX-License-Identifier: Apache-2.0
#
defmodule NervesHubLink.Application do
@moduledoc false
use Application
alias NervesHubLink.ArchiveManager
alias NervesHubLink.Configurator
alias NervesHubLink.Extensions
alias NervesHubLink.ExtensionsSupervisor
alias NervesHubLink.FwupConfig
alias NervesHubLink.Socket
alias NervesHubLink.SupportScriptsManager
alias NervesHubLink.UpdateManager
@impl Application
def start(_type, _args) do
connect? = Application.get_env(:nerves_hub_link, :connect, true)
children =
if connect? do
config = Configurator.build()
fwup_config = %FwupConfig{
fwup_devpath: config.fwup_devpath,
fwup_task: config.fwup_task,
fwup_extra_options: config.fwup_extra_options,
fwup_env: config.fwup_env
}
[
{DynamicSupervisor, name: ExtensionsSupervisor},
Extensions,
{UpdateManager, {fwup_config, config.updater}},
{ArchiveManager, config},
{Socket, config},
{Task.Supervisor, name: SupportScriptsTaskSupervisor},
SupportScriptsManager
]
else
[]
end
Supervisor.start_link(children, strategy: :one_for_one, name: NervesHubLink.Supervisor)
end
end