farmbot_os/lib/farmbot/celery_script/ast/node/check_updates.ex

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