More prod prep

pull/375/head
connor rigby 2017-12-04 13:20:01 -08:00
parent 15bed4494c
commit 1661d10d15
7 changed files with 31 additions and 29 deletions

View File

@ -6,8 +6,6 @@ config :logger,
config :farmbot, data_path: "/root"
# This is usually in the `priv` dir of :tzdata, but our fs is read only.
# config :tzdata, :data_dir, "/root"
# Disable tzdata autoupdates because it tries to dl the update file
# Before we have network or ntp.
config :tzdata, :autoupdate, :disabled
@ -68,27 +66,11 @@ config :farmbot, :behaviour,
update_handler: Farmbot.Target.UpdateHandler,
gpio_handler: Farmbot.Target.GPIO.AleHandler
local_file = Path.join(System.user_home!(), ".ssh/id_rsa.pub")
local_key = if File.exists?(local_file) do
[File.read!(local_file)]
else
[]
end
travis_file = "travis_env"
travis_keys = if File.exists?(travis_file) do
File.read!(travis_file) |> String.split(",")
else
[]
end
config :nerves_firmware_ssh, authorized_keys: local_key ++ travis_keys
config :nerves_init_gadget,
address_method: :static
config :bootloader,
init: [:nerves_runtime, :nerves_init_gadget],
init: [:nerves_runtime],
app: :farmbot
if Mix.Project.config[:target] == "rpi3" do

View File

@ -6,8 +6,6 @@ config :logger,
config :farmbot, data_path: "/root"
# This is usually in the `priv` dir of :tzdata, but our fs is read only.
config :tzdata, :data_dir, "/root"
# Disable tzdata autoupdates because it tries to dl the update file
# Before we have network or ntp.
config :tzdata, :autoupdate, :disabled

View File

@ -9,4 +9,7 @@ defmodule Farmbot.System.UpdateHandler do
@doc "Apply a fw update."
@callback apply_firmware(Path.t) :: :ok | {:error, term}
@doc "Setup updates."
@callback setup(atom) :: :ok | {:error, term}
end

View File

@ -150,11 +150,16 @@ defmodule Farmbot.System.Updates do
end
def init([]) do
maybe_post_update()
children = [
worker(Farmbot.System.UpdateTimer, [])
]
opts = [strategy: :one_for_one]
supervise(children, opts)
case @handler.setup(@env) do
:ok ->
maybe_post_update()
children = [
worker(Farmbot.System.UpdateTimer, [])
]
opts = [strategy: :one_for_one]
supervise(children, opts)
{:error, reason} ->
{:stop, reason}
end
end
end

View File

@ -123,7 +123,7 @@ defmodule Farmbot.Mixfile do
{:bootloader, "~> 0.1"},
{:nerves_runtime, "~> 0.4"},
{:nerves_firmware, "~> 0.4.0"},
{:nerves_firmware_ssh, "~> 0.2"},
{:nerves_firmware_ssh, "~> 0.2", only: :dev},
{:nerves_network, "~> 0.3", github: "nerves-project/nerves_network", override: true},
{:dhcp_server, github: "nerves-project/dhcp_server", branch: "elixirize-go!", override: true},
{:elixir_ale, "~> 1.0"}

View File

@ -11,10 +11,14 @@ defmodule Farmbot.Host.UpdateHandler do
end
def before_update do
:ok
end
def post_update do
:ok
end
def setup(_env) do
:ok
end
end

View File

@ -18,4 +18,14 @@ defmodule Farmbot.Target.UpdateHandler do
Farmbot.Firmware.UartHandler.Update.maybe_update_firmware()
:ok
end
def setup(:prod) do
file = "#{:code.priv_dir(:farmbot)}/fwup-key.pub"
Application.put_env(:nerves_firmware, :pub_key_path, file)
if File.exists?(file), do: :ok, else: {:error, :no_pub_file}
end
def setup(_) do
:ok
end
end