28 lines
742 B
Elixir
28 lines
742 B
Elixir
defmodule Farmbot.CeleryScript.AST.Node.CheckUpdates do
|
|
@moduledoc false
|
|
use Farmbot.CeleryScript.AST.Node
|
|
allow_args [:package]
|
|
|
|
def execute(%{package: :farmbot_os}, _, env) do
|
|
env = mutate_env(env)
|
|
nerves_hub_updater(env)
|
|
end
|
|
|
|
def execute(%{package: :arduino_firmware}, _, env) do
|
|
env = mutate_env(env)
|
|
{:error, "Arduino firmware can not be updated manually.", env}
|
|
end
|
|
|
|
def execute(%{package: {:farmware, _fw}} = args, _, env) do
|
|
env = mutate_env(env)
|
|
Farmbot.CeleryScript.AST.Node.UpdateFarmware.execute(args, [], env)
|
|
end
|
|
|
|
defp nerves_hub_updater(env) do
|
|
case Farmbot.System.NervesHub.check_update() do
|
|
nil -> {:ok, env}
|
|
url when is_binary(url) -> {:ok, env}
|
|
end
|
|
end
|
|
end
|