From 8368845a675df06e88076118357d95a498746359 Mon Sep 17 00:00:00 2001 From: Mikko Ahlroth Date: Sat, 4 Nov 2017 10:25:04 +0200 Subject: [PATCH] Preliminary setup, networking, SSH, code formatting --- .formatter.exs | 8 ++++++ .gitignore | 3 ++ config/config.exs | 31 +++++++++++++++++---- config/host.exs | 1 + config/judge.exs | 3 ++ config/player.exs | 3 ++ config/respawn.exs | 3 ++ config/rpi.exs | 5 ++++ config/rpi0.exs | 5 ++++ config/rpi2.exs | 5 ++++ lib/duck_tag.ex | 1 - mix.exs | 69 +++++++++++++++++++++++++++------------------- mix.lock.host | 10 +++++-- mix.lock.rpi | 23 ++++++++++++++++ mix.lock.rpi0 | 42 +++++++++++++++------------- mix.lock.rpi2 | 23 ++++++++++++++++ rel/config.exs | 29 ++++++++++--------- 17 files changed, 194 insertions(+), 70 deletions(-) create mode 100644 .formatter.exs create mode 100644 config/host.exs create mode 100644 config/judge.exs create mode 100644 config/player.exs create mode 100644 config/respawn.exs create mode 100644 config/rpi.exs create mode 100644 config/rpi0.exs create mode 100644 config/rpi2.exs create mode 100644 mix.lock.rpi create mode 100644 mix.lock.rpi2 diff --git a/.formatter.exs b/.formatter.exs new file mode 100644 index 0000000..66ee4f0 --- /dev/null +++ b/.formatter.exs @@ -0,0 +1,8 @@ +[ + inputs: [ + "lib/**/*.{ex,exs}", + "config/*.{ex,exs}", + "mix.exs", + "rel/config.exs" + ] +] diff --git a/.gitignore b/.gitignore index 86fa203..3f059a0 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,6 @@ # Generate on crash by the VM erl_crash.dump + +# Secret configs for dev +config/*.secret.exs diff --git a/config/config.exs b/config/config.exs index 9555ab1..3d8e053 100644 --- a/config/config.exs +++ b/config/config.exs @@ -17,7 +17,7 @@ use Mix.Config # docs for separating out critical OTP applications such as those # involved with firmware updates. config :bootloader, - init: [:nerves_runtime, :nerves_init_gadget], + init: [:nerves_runtime, :nerves_init_gadget, :nerves_network], app: :duck_tag config :nerves_firmware_ssh, @@ -25,8 +25,29 @@ config :nerves_firmware_ssh, File.read!(Path.join(['ssh', 'id_nerves.pub'])) ] -# Import target specific config. This must remain at the bottom -# of this file so it overrides the configuration defined above. -# Uncomment to use target specific configurations +# Autoconnect to WiFi set at build time with env vars +key_mgmt = System.get_env("NERVES_NETWORK_KEY_MGMT") || "WPA-PSK" -# import_config "#{Mix.Project.config[:target]}.exs" +# By default all nodes will try to connect to given WiFi or wired ethernet with DHCP +config :nerves_network, :default, + wlan0: [ + ssid: System.get_env("NERVES_NETWORK_SSID"), + psk: System.get_env("NERVES_NETWORK_PSK"), + key_mgmt: String.to_atom(key_mgmt) + ], + eth0: [ + ipv4_address_method: :dhcp + ] + +# Override this in further config +config :nerves_network, regulatory_domain: "00" + +# Overrides for networking that apply to every device +import_config "networking.secret.exs" + +# Import target specific config + +import_config "#{Mix.Project.config()[:target]}.exs" + +# Include role specific config as last. There you can set custom configs based on the role of the device +import_config "#{System.get_env("DUCKTAG_ROLE")}.exs" diff --git a/config/host.exs b/config/host.exs new file mode 100644 index 0000000..d2d855e --- /dev/null +++ b/config/host.exs @@ -0,0 +1 @@ +use Mix.Config diff --git a/config/judge.exs b/config/judge.exs new file mode 100644 index 0000000..f4eee54 --- /dev/null +++ b/config/judge.exs @@ -0,0 +1,3 @@ +use Mix.Config + +import_config "judge.secret.exs" diff --git a/config/player.exs b/config/player.exs new file mode 100644 index 0000000..32a7d9f --- /dev/null +++ b/config/player.exs @@ -0,0 +1,3 @@ +use Mix.Config + +import_config "player.secret.exs" diff --git a/config/respawn.exs b/config/respawn.exs new file mode 100644 index 0000000..b054ab2 --- /dev/null +++ b/config/respawn.exs @@ -0,0 +1,3 @@ +use Mix.Config + +import_config "respawn.secret.exs" diff --git a/config/rpi.exs b/config/rpi.exs new file mode 100644 index 0000000..36c50b5 --- /dev/null +++ b/config/rpi.exs @@ -0,0 +1,5 @@ +# RPi 1 Model B specific config + +use Mix.Config + +import_config "rpi.secret.exs" diff --git a/config/rpi0.exs b/config/rpi0.exs new file mode 100644 index 0000000..9125c7b --- /dev/null +++ b/config/rpi0.exs @@ -0,0 +1,5 @@ +# RPI0W specific configs + +use Mix.Config + +import_config "rpi0.secret.exs" diff --git a/config/rpi2.exs b/config/rpi2.exs new file mode 100644 index 0000000..9a1fc77 --- /dev/null +++ b/config/rpi2.exs @@ -0,0 +1,5 @@ +# RPi 2 Model B specific config + +use Mix.Config + +import_config "rpi2.secret.exs" diff --git a/lib/duck_tag.ex b/lib/duck_tag.ex index 2c00a7d..626ecbd 100644 --- a/lib/duck_tag.ex +++ b/lib/duck_tag.ex @@ -1,3 +1,2 @@ defmodule DuckTag do - end diff --git a/mix.exs b/mix.exs index 13fe50a..4f0e2a1 100644 --- a/mix.exs +++ b/mix.exs @@ -3,25 +3,31 @@ defmodule DuckTag.Mixfile do @target System.get_env("MIX_TARGET") || "host" - Mix.shell.info([:green, """ - Mix environment - MIX_TARGET: #{@target} - MIX_ENV: #{Mix.env} - """, :reset]) + Mix.shell().info([ + :green, + """ + Mix environment + MIX_TARGET: #{@target} + MIX_ENV: #{Mix.env()} + """, + :reset + ]) def project do - [app: :duck_tag, - version: "0.1.0", - elixir: "~> 1.4", - target: @target, - archives: [nerves_bootstrap: "~> 0.6"], - deps_path: "deps/#{@target}", - build_path: "_build/#{@target}", - lockfile: "mix.lock.#{@target}", - build_embedded: Mix.env == :prod, - start_permanent: Mix.env == :prod, - aliases: aliases(@target), - deps: deps()] + [ + app: :duck_tag, + version: "0.1.0", + elixir: "~> 1.5", + target: @target, + archives: [nerves_bootstrap: "~> 0.6"], + deps_path: "deps/#{@target}", + build_path: "_build/#{@target}", + lockfile: "mix.lock.#{@target}", + build_embedded: Mix.env() == :prod, + start_permanent: Mix.env() == :prod, + aliases: aliases(@target), + deps: deps() + ] end # Configuration for the OTP application. @@ -36,9 +42,9 @@ defmodule DuckTag.Mixfile do def application("host") do [extra_applications: [:logger]] end + def application(_target) do - [mod: {DuckTag.Application, []}, - extra_applications: [:logger]] + [mod: {DuckTag.Application, []}, extra_applications: [:logger]] end # Dependencies can be Hex packages: @@ -51,18 +57,23 @@ defmodule DuckTag.Mixfile do # # Type "mix help deps" for more examples and options def deps do - [{:nerves, "~> 0.7", runtime: false}] ++ - deps(@target) + [{:nerves, "~> 0.7", runtime: false}] ++ deps(@target) end # Specify target specific dependencies - def deps("host"), do: [] + def deps("host"), + do: [ + {:nerves_firmware_ssh, "~> 0.3"} + ] + def deps(target) do [ {:bootloader, "~> 0.1"}, {:nerves_runtime, "~> 0.4"}, {:nerves_init_gadget, "~> 0.2"}, - {:nerves_io_rc522, "~> 0.1.0"} + {:nerves_io_rc522, "~> 0.1.0"}, + {:observer_cli, "~> 1.1.0"}, + {:nerves_network, "~> 0.3"} ] ++ system(target) end @@ -74,13 +85,15 @@ defmodule DuckTag.Mixfile do def system("linkit"), do: [{:nerves_system_linkit, ">= 0.0.0", runtime: false}] def system("ev3"), do: [{:nerves_system_ev3, ">= 0.0.0", runtime: false}] def system("qemu_arm"), do: [{:nerves_system_qemu_arm, ">= 0.0.0", runtime: false}] - def system(target), do: Mix.raise "Unknown MIX_TARGET: #{target}" + def system(target), do: Mix.raise("Unknown MIX_TARGET: #{target}") # We do not invoke the Nerves Env when running on the Host def aliases("host"), do: [] - def aliases(_target) do - ["deps.precompile": ["nerves.precompile", "deps.precompile"], - "deps.loadpaths": ["deps.loadpaths", "nerves.loadpaths"]] - end + def aliases(_target) do + [ + "deps.precompile": ["nerves.precompile", "deps.precompile"], + "deps.loadpaths": ["deps.loadpaths", "nerves.loadpaths"] + ] + end end diff --git a/mix.lock.host b/mix.lock.host index ebb0af6..65e66fb 100644 --- a/mix.lock.host +++ b/mix.lock.host @@ -1,2 +1,8 @@ -%{"distillery": {:hex, :distillery, "1.5.2", "eec18b2d37b55b0bcb670cf2bcf64228ed38ce8b046bb30a9b636a6f5a4c0080", [], [], "hexpm"}, - "nerves": {:hex, :nerves, "0.7.5", "3aa6a336b2ad6c1c9589cc2b577511b3c4c375c1ba6c533ab9f88adb8c21f0c3", [], [{:distillery, "~> 1.4", [hex: :distillery, repo: "hexpm", optional: false]}], "hexpm"}} +%{ + "distillery": {:hex, :distillery, "1.5.2", "eec18b2d37b55b0bcb670cf2bcf64228ed38ce8b046bb30a9b636a6f5a4c0080", [], [], "hexpm"}, + "elixir_make": {:hex, :elixir_make, "0.4.0", "992f38fabe705bb45821a728f20914c554b276838433349d4f2341f7a687cddf", [], [], "hexpm"}, + "nerves": {:hex, :nerves, "0.7.5", "3aa6a336b2ad6c1c9589cc2b577511b3c4c375c1ba6c533ab9f88adb8c21f0c3", [], [{:distillery, "~> 1.4", [hex: :distillery, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_firmware_ssh": {:hex, :nerves_firmware_ssh, "0.3.1", "e8b1967fa0aff255230be539c68ec868d33884193a385caff957ebad7d6aa8af", [], [{:nerves_runtime, "~> 0.4", [hex: :nerves_runtime, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_runtime": {:hex, :nerves_runtime, "0.5.0", "5f4135fe3c94ca5c9e25d677350fbb136f279d14aac4871236961b6f5ccbcfa5", [], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:system_registry, "~> 0.5", [hex: :system_registry, repo: "hexpm", optional: false]}], "hexpm"}, + "system_registry": {:hex, :system_registry, "0.6.0", "31642177e6002d3cff2ada3553ed4e9c0a6ca015797d62d7d17c0ab8696185fc", [], [], "hexpm"}, +} diff --git a/mix.lock.rpi b/mix.lock.rpi new file mode 100644 index 0000000..4b71b96 --- /dev/null +++ b/mix.lock.rpi @@ -0,0 +1,23 @@ +%{ + "bootloader": {:hex, :bootloader, "0.1.2", "835ddcf50b796714658f342061d5d48ebc34cbd0d81cdbd5a5a8ae00705d72b1", [], [{:distillery, "~> 1.0", [hex: :distillery, repo: "hexpm", optional: false]}], "hexpm"}, + "distillery": {:hex, :distillery, "1.5.2", "eec18b2d37b55b0bcb670cf2bcf64228ed38ce8b046bb30a9b636a6f5a4c0080", [], [], "hexpm"}, + "dns": {:hex, :dns, "1.0.1", "1d88187fdf564d937cee202949141090707fd0c9d7fcae903a6878ef24ef5d1e", [], [{:socket, "~> 0.3.12", [hex: :socket, repo: "hexpm", optional: false]}], "hexpm"}, + "elixir_make": {:hex, :elixir_make, "0.4.0", "992f38fabe705bb45821a728f20914c554b276838433349d4f2341f7a687cddf", [], [], "hexpm"}, + "mdns": {:hex, :mdns, "0.1.6", "b51b902b15b50e0e1522483c6a5fb073413e3d3d6ef52a44b93a541460b47d29", [], [{:dns, "~> 1.0", [hex: :dns, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves": {:hex, :nerves, "0.7.5", "3aa6a336b2ad6c1c9589cc2b577511b3c4c375c1ba6c533ab9f88adb8c21f0c3", [], [{:distillery, "~> 1.4", [hex: :distillery, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_firmware_ssh": {:hex, :nerves_firmware_ssh, "0.3.1", "e8b1967fa0aff255230be539c68ec868d33884193a385caff957ebad7d6aa8af", [], [{:nerves_runtime, "~> 0.4", [hex: :nerves_runtime, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_init_gadget": {:hex, :nerves_init_gadget, "0.2.1", "20f36dd062fb00e2be8817ddff1b9ced9762877cfe23f6ec1d5936a37e3fc2c8", [], [{:mdns, "~> 0.1", [hex: :mdns, repo: "hexpm", optional: false]}, {:nerves_firmware_ssh, "~> 0.2", [hex: :nerves_firmware_ssh, repo: "hexpm", optional: false]}, {:nerves_network, "~> 0.3", [hex: :nerves_network, repo: "hexpm", optional: false]}, {:nerves_runtime, "~> 0.3", [hex: :nerves_runtime, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_io_rc522": {:hex, :nerves_io_rc522, "0.1.0", "5a84a23ff2ac6e4c9cc0ea2931e43cf06d175b991bfd8b0ef664192cee25b7a4", [], [{:elixir_make, "~> 0.3", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_network": {:hex, :nerves_network, "0.3.4", "c50a36b8263cda2bee18f408287d0f4474f8367702d170864325abbd5d424e4d", [], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:nerves_network_interface, "~> 0.4.0", [hex: :nerves_network_interface, repo: "hexpm", optional: false]}, {:nerves_wpa_supplicant, "~> 0.3.0", [hex: :nerves_wpa_supplicant, repo: "hexpm", optional: false]}, {:system_registry, "~> 0.4", [hex: :system_registry, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_network_interface": {:hex, :nerves_network_interface, "0.4.2", "7a3663a07803f2f9f1e37146714d24ccec1e9349268586e4ed8c41f38641d837", [], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_runtime": {:hex, :nerves_runtime, "0.5.0", "5f4135fe3c94ca5c9e25d677350fbb136f279d14aac4871236961b6f5ccbcfa5", [], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:system_registry, "~> 0.5", [hex: :system_registry, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_system_br": {:hex, :nerves_system_br, "0.14.1", "b108f8e12b2fd5cfd75be72d8ade4a1cfa9b9fd9076380c431ad930a7ccd5526", [], [], "hexpm"}, + "nerves_system_rpi": {:hex, :nerves_system_rpi, "0.17.1", "f31e4c20901ed14ed99e672b7778b83f75caa09f52ab76c4474d24ab9876c17d", [], [{:nerves, "~> 0.7", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_system_br, "~> 0.14.1", [hex: :nerves_system_br, repo: "hexpm", optional: false]}, {:nerves_toolchain_armv6_rpi_linux_gnueabi, "~> 0.11.0", [hex: :nerves_toolchain_armv6_rpi_linux_gnueabi, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_toolchain_armv6_rpi_linux_gnueabi": {:hex, :nerves_toolchain_armv6_rpi_linux_gnueabi, "0.11.0", "74ee72f15baffe773e41bae1baeef3942fc8f97fa47d9d1bf9db07c17eca90bd", [], [{:nerves, "~> 0.7", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.1", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.1.0", "0f03e4a3f3beef5fe271de0148b9f106c417e57f303f635c21c74b4bd6eb68ee", [], [], "hexpm"}, + "nerves_wpa_supplicant": {:hex, :nerves_wpa_supplicant, "0.3.2", "19dc7e1248336e7f542b11b2b857ceb5b088d3eb41a6ca75b7b76628dcf67aad", [], [{:elixir_make, "~> 0.3", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"}, + "observer_cli": {:hex, :observer_cli, "1.1.0", "f3a47c22327424291758167df3c4600dcf8bf34795a3787612019aa5b86a5c21", [], [{:recon, "2.3.2", [hex: :recon, repo: "hexpm", optional: false]}], "hexpm"}, + "recon": {:hex, :recon, "2.3.2", "4444c879be323b1b133eec5241cb84bd3821ea194c740d75617e106be4744318", [], [], "hexpm"}, + "socket": {:hex, :socket, "0.3.12", "4a6543815136503fee67eff0932da1742fad83f84c49130c854114153cc549a6", [], [], "hexpm"}, + "system_registry": {:hex, :system_registry, "0.6.0", "31642177e6002d3cff2ada3553ed4e9c0a6ca015797d62d7d17c0ab8696185fc", [], [], "hexpm"}, +} diff --git a/mix.lock.rpi0 b/mix.lock.rpi0 index 6e86039..834d75e 100644 --- a/mix.lock.rpi0 +++ b/mix.lock.rpi0 @@ -1,19 +1,23 @@ -%{"bootloader": {:hex, :bootloader, "0.1.2", "835ddcf50b796714658f342061d5d48ebc34cbd0d81cdbd5a5a8ae00705d72b1", [], [{:distillery, "~> 1.0", [hex: :distillery, repo: "hexpm", optional: false]}], "hexpm"}, - "distillery": {:hex, :distillery, "1.5.2", "eec18b2d37b55b0bcb670cf2bcf64228ed38ce8b046bb30a9b636a6f5a4c0080", [], [], "hexpm"}, - "dns": {:hex, :dns, "1.0.1", "1d88187fdf564d937cee202949141090707fd0c9d7fcae903a6878ef24ef5d1e", [], [{:socket, "~> 0.3.12", [hex: :socket, repo: "hexpm", optional: false]}], "hexpm"}, - "elixir_make": {:hex, :elixir_make, "0.4.0", "992f38fabe705bb45821a728f20914c554b276838433349d4f2341f7a687cddf", [], [], "hexpm"}, - "mdns": {:hex, :mdns, "0.1.6", "b51b902b15b50e0e1522483c6a5fb073413e3d3d6ef52a44b93a541460b47d29", [], [{:dns, "~> 1.0", [hex: :dns, repo: "hexpm", optional: false]}], "hexpm"}, - "nerves": {:hex, :nerves, "0.7.5", "3aa6a336b2ad6c1c9589cc2b577511b3c4c375c1ba6c533ab9f88adb8c21f0c3", [], [{:distillery, "~> 1.4", [hex: :distillery, repo: "hexpm", optional: false]}], "hexpm"}, - "nerves_firmware_ssh": {:hex, :nerves_firmware_ssh, "0.3.1", "e8b1967fa0aff255230be539c68ec868d33884193a385caff957ebad7d6aa8af", [], [{:nerves_runtime, "~> 0.4", [hex: :nerves_runtime, repo: "hexpm", optional: false]}], "hexpm"}, - "nerves_init_gadget": {:hex, :nerves_init_gadget, "0.2.1", "20f36dd062fb00e2be8817ddff1b9ced9762877cfe23f6ec1d5936a37e3fc2c8", [], [{:mdns, "~> 0.1", [hex: :mdns, repo: "hexpm", optional: false]}, {:nerves_firmware_ssh, "~> 0.2", [hex: :nerves_firmware_ssh, repo: "hexpm", optional: false]}, {:nerves_network, "~> 0.3", [hex: :nerves_network, repo: "hexpm", optional: false]}, {:nerves_runtime, "~> 0.3", [hex: :nerves_runtime, repo: "hexpm", optional: false]}], "hexpm"}, - "nerves_io_rc522": {:hex, :nerves_io_rc522, "0.1.0", "5a84a23ff2ac6e4c9cc0ea2931e43cf06d175b991bfd8b0ef664192cee25b7a4", [], [{:elixir_make, "~> 0.3", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"}, - "nerves_network": {:hex, :nerves_network, "0.3.4", "c50a36b8263cda2bee18f408287d0f4474f8367702d170864325abbd5d424e4d", [], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:nerves_network_interface, "~> 0.4.0", [hex: :nerves_network_interface, repo: "hexpm", optional: false]}, {:nerves_wpa_supplicant, "~> 0.3.0", [hex: :nerves_wpa_supplicant, repo: "hexpm", optional: false]}, {:system_registry, "~> 0.4", [hex: :system_registry, repo: "hexpm", optional: false]}], "hexpm"}, - "nerves_network_interface": {:hex, :nerves_network_interface, "0.4.2", "7a3663a07803f2f9f1e37146714d24ccec1e9349268586e4ed8c41f38641d837", [], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"}, - "nerves_runtime": {:hex, :nerves_runtime, "0.5.0", "5f4135fe3c94ca5c9e25d677350fbb136f279d14aac4871236961b6f5ccbcfa5", [], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:system_registry, "~> 0.5", [hex: :system_registry, repo: "hexpm", optional: false]}], "hexpm"}, - "nerves_system_br": {:hex, :nerves_system_br, "0.14.0", "bff3e310e93c7143525257289cc1ba957ebaeebbaf6e97428d0d01c13f440e49", [], [], "hexpm"}, - "nerves_system_rpi0": {:hex, :nerves_system_rpi0, "0.18.1", "7d24a99b2f456af9d1d99b04618336859344e55954262c920904bc5b9f081508", [], [{:nerves, "~> 0.7", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_system_br, "~> 0.14.0", [hex: :nerves_system_br, repo: "hexpm", optional: false]}, {:nerves_toolchain_armv6_rpi_linux_gnueabi, "~> 0.11.0", [hex: :nerves_toolchain_armv6_rpi_linux_gnueabi, repo: "hexpm", optional: false]}], "hexpm"}, - "nerves_toolchain_armv6_rpi_linux_gnueabi": {:hex, :nerves_toolchain_armv6_rpi_linux_gnueabi, "0.11.0", "74ee72f15baffe773e41bae1baeef3942fc8f97fa47d9d1bf9db07c17eca90bd", [], [{:nerves, "~> 0.7", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.1", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm"}, - "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.1.0", "0f03e4a3f3beef5fe271de0148b9f106c417e57f303f635c21c74b4bd6eb68ee", [], [], "hexpm"}, - "nerves_wpa_supplicant": {:hex, :nerves_wpa_supplicant, "0.3.2", "19dc7e1248336e7f542b11b2b857ceb5b088d3eb41a6ca75b7b76628dcf67aad", [], [{:elixir_make, "~> 0.3", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"}, - "socket": {:hex, :socket, "0.3.12", "4a6543815136503fee67eff0932da1742fad83f84c49130c854114153cc549a6", [], [], "hexpm"}, - "system_registry": {:hex, :system_registry, "0.6.0", "31642177e6002d3cff2ada3553ed4e9c0a6ca015797d62d7d17c0ab8696185fc", [], [], "hexpm"}} +%{ + "bootloader": {:hex, :bootloader, "0.1.2", "835ddcf50b796714658f342061d5d48ebc34cbd0d81cdbd5a5a8ae00705d72b1", [:mix], [{:distillery, "~> 1.0", [hex: :distillery, repo: "hexpm", optional: false]}], "hexpm"}, + "distillery": {:hex, :distillery, "1.5.2", "eec18b2d37b55b0bcb670cf2bcf64228ed38ce8b046bb30a9b636a6f5a4c0080", [:mix], [], "hexpm"}, + "dns": {:hex, :dns, "1.0.1", "1d88187fdf564d937cee202949141090707fd0c9d7fcae903a6878ef24ef5d1e", [:mix], [{:socket, "~> 0.3.12", [hex: :socket, repo: "hexpm", optional: false]}], "hexpm"}, + "elixir_make": {:hex, :elixir_make, "0.4.0", "992f38fabe705bb45821a728f20914c554b276838433349d4f2341f7a687cddf", [:mix], [], "hexpm"}, + "mdns": {:hex, :mdns, "0.1.6", "b51b902b15b50e0e1522483c6a5fb073413e3d3d6ef52a44b93a541460b47d29", [:mix], [{:dns, "~> 1.0", [hex: :dns, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves": {:hex, :nerves, "0.7.5", "3aa6a336b2ad6c1c9589cc2b577511b3c4c375c1ba6c533ab9f88adb8c21f0c3", [:mix], [{:distillery, "~> 1.4", [hex: :distillery, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_firmware_ssh": {:hex, :nerves_firmware_ssh, "0.3.1", "e8b1967fa0aff255230be539c68ec868d33884193a385caff957ebad7d6aa8af", [:mix], [{:nerves_runtime, "~> 0.4", [hex: :nerves_runtime, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_init_gadget": {:hex, :nerves_init_gadget, "0.2.1", "20f36dd062fb00e2be8817ddff1b9ced9762877cfe23f6ec1d5936a37e3fc2c8", [:mix], [{:mdns, "~> 0.1", [hex: :mdns, repo: "hexpm", optional: false]}, {:nerves_firmware_ssh, "~> 0.2", [hex: :nerves_firmware_ssh, repo: "hexpm", optional: false]}, {:nerves_network, "~> 0.3", [hex: :nerves_network, repo: "hexpm", optional: false]}, {:nerves_runtime, "~> 0.3", [hex: :nerves_runtime, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_io_rc522": {:hex, :nerves_io_rc522, "0.1.0", "5a84a23ff2ac6e4c9cc0ea2931e43cf06d175b991bfd8b0ef664192cee25b7a4", [:make, :mix], [{:elixir_make, "~> 0.3", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_network": {:hex, :nerves_network, "0.3.4", "c50a36b8263cda2bee18f408287d0f4474f8367702d170864325abbd5d424e4d", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:nerves_network_interface, "~> 0.4.0", [hex: :nerves_network_interface, repo: "hexpm", optional: false]}, {:nerves_wpa_supplicant, "~> 0.3.0", [hex: :nerves_wpa_supplicant, repo: "hexpm", optional: false]}, {:system_registry, "~> 0.4", [hex: :system_registry, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_network_interface": {:hex, :nerves_network_interface, "0.4.2", "7a3663a07803f2f9f1e37146714d24ccec1e9349268586e4ed8c41f38641d837", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_runtime": {:hex, :nerves_runtime, "0.5.0", "5f4135fe3c94ca5c9e25d677350fbb136f279d14aac4871236961b6f5ccbcfa5", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:system_registry, "~> 0.5", [hex: :system_registry, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_system_br": {:hex, :nerves_system_br, "0.14.1", "b108f8e12b2fd5cfd75be72d8ade4a1cfa9b9fd9076380c431ad930a7ccd5526", [:mix], [], "hexpm"}, + "nerves_system_rpi0": {:hex, :nerves_system_rpi0, "0.18.2", "c560903230b2c3e14f74d2b6b017b449b3d6af93273e74ba45a48d5bf0e5da69", [:mix], [{:nerves, "~> 0.7", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_system_br, "~> 0.14.1", [hex: :nerves_system_br, repo: "hexpm", optional: false]}, {:nerves_toolchain_armv6_rpi_linux_gnueabi, "~> 0.11.0", [hex: :nerves_toolchain_armv6_rpi_linux_gnueabi, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_toolchain_armv6_rpi_linux_gnueabi": {:hex, :nerves_toolchain_armv6_rpi_linux_gnueabi, "0.11.0", "74ee72f15baffe773e41bae1baeef3942fc8f97fa47d9d1bf9db07c17eca90bd", [:mix], [{:nerves, "~> 0.7", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.1", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.1.0", "0f03e4a3f3beef5fe271de0148b9f106c417e57f303f635c21c74b4bd6eb68ee", [:mix], [], "hexpm"}, + "nerves_wpa_supplicant": {:hex, :nerves_wpa_supplicant, "0.3.2", "19dc7e1248336e7f542b11b2b857ceb5b088d3eb41a6ca75b7b76628dcf67aad", [:make, :mix], [{:elixir_make, "~> 0.3", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"}, + "observer_cli": {:hex, :observer_cli, "1.1.0", "f3a47c22327424291758167df3c4600dcf8bf34795a3787612019aa5b86a5c21", [], [{:recon, "2.3.2", [hex: :recon, repo: "hexpm", optional: false]}], "hexpm"}, + "recon": {:hex, :recon, "2.3.2", "4444c879be323b1b133eec5241cb84bd3821ea194c740d75617e106be4744318", [], [], "hexpm"}, + "socket": {:hex, :socket, "0.3.12", "4a6543815136503fee67eff0932da1742fad83f84c49130c854114153cc549a6", [:mix], [], "hexpm"}, + "system_registry": {:hex, :system_registry, "0.6.0", "31642177e6002d3cff2ada3553ed4e9c0a6ca015797d62d7d17c0ab8696185fc", [:mix], [], "hexpm"}, +} diff --git a/mix.lock.rpi2 b/mix.lock.rpi2 new file mode 100644 index 0000000..845ed45 --- /dev/null +++ b/mix.lock.rpi2 @@ -0,0 +1,23 @@ +%{ + "bootloader": {:hex, :bootloader, "0.1.2", "835ddcf50b796714658f342061d5d48ebc34cbd0d81cdbd5a5a8ae00705d72b1", [], [{:distillery, "~> 1.0", [hex: :distillery, repo: "hexpm", optional: false]}], "hexpm"}, + "distillery": {:hex, :distillery, "1.5.2", "eec18b2d37b55b0bcb670cf2bcf64228ed38ce8b046bb30a9b636a6f5a4c0080", [], [], "hexpm"}, + "dns": {:hex, :dns, "1.0.1", "1d88187fdf564d937cee202949141090707fd0c9d7fcae903a6878ef24ef5d1e", [], [{:socket, "~> 0.3.12", [hex: :socket, repo: "hexpm", optional: false]}], "hexpm"}, + "elixir_make": {:hex, :elixir_make, "0.4.0", "992f38fabe705bb45821a728f20914c554b276838433349d4f2341f7a687cddf", [], [], "hexpm"}, + "mdns": {:hex, :mdns, "0.1.6", "b51b902b15b50e0e1522483c6a5fb073413e3d3d6ef52a44b93a541460b47d29", [], [{:dns, "~> 1.0", [hex: :dns, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves": {:hex, :nerves, "0.7.5", "3aa6a336b2ad6c1c9589cc2b577511b3c4c375c1ba6c533ab9f88adb8c21f0c3", [], [{:distillery, "~> 1.4", [hex: :distillery, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_firmware_ssh": {:hex, :nerves_firmware_ssh, "0.3.1", "e8b1967fa0aff255230be539c68ec868d33884193a385caff957ebad7d6aa8af", [], [{:nerves_runtime, "~> 0.4", [hex: :nerves_runtime, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_init_gadget": {:hex, :nerves_init_gadget, "0.2.1", "20f36dd062fb00e2be8817ddff1b9ced9762877cfe23f6ec1d5936a37e3fc2c8", [], [{:mdns, "~> 0.1", [hex: :mdns, repo: "hexpm", optional: false]}, {:nerves_firmware_ssh, "~> 0.2", [hex: :nerves_firmware_ssh, repo: "hexpm", optional: false]}, {:nerves_network, "~> 0.3", [hex: :nerves_network, repo: "hexpm", optional: false]}, {:nerves_runtime, "~> 0.3", [hex: :nerves_runtime, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_io_rc522": {:hex, :nerves_io_rc522, "0.1.0", "5a84a23ff2ac6e4c9cc0ea2931e43cf06d175b991bfd8b0ef664192cee25b7a4", [], [{:elixir_make, "~> 0.3", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_network": {:hex, :nerves_network, "0.3.4", "c50a36b8263cda2bee18f408287d0f4474f8367702d170864325abbd5d424e4d", [], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:nerves_network_interface, "~> 0.4.0", [hex: :nerves_network_interface, repo: "hexpm", optional: false]}, {:nerves_wpa_supplicant, "~> 0.3.0", [hex: :nerves_wpa_supplicant, repo: "hexpm", optional: false]}, {:system_registry, "~> 0.4", [hex: :system_registry, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_network_interface": {:hex, :nerves_network_interface, "0.4.2", "7a3663a07803f2f9f1e37146714d24ccec1e9349268586e4ed8c41f38641d837", [], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_runtime": {:hex, :nerves_runtime, "0.5.0", "5f4135fe3c94ca5c9e25d677350fbb136f279d14aac4871236961b6f5ccbcfa5", [], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:system_registry, "~> 0.5", [hex: :system_registry, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_system_br": {:hex, :nerves_system_br, "0.14.1", "b108f8e12b2fd5cfd75be72d8ade4a1cfa9b9fd9076380c431ad930a7ccd5526", [], [], "hexpm"}, + "nerves_system_rpi2": {:hex, :nerves_system_rpi2, "0.17.1", "e8e7987d42af17b071e1ece2bedce6ff4c8cbf61ad5587c02bc8d149f67498d8", [], [{:nerves, "~> 0.7", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_system_br, "~> 0.14.1", [hex: :nerves_system_br, repo: "hexpm", optional: false]}, {:nerves_toolchain_arm_unknown_linux_gnueabihf, "~> 0.11.0", [hex: :nerves_toolchain_arm_unknown_linux_gnueabihf, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_toolchain_arm_unknown_linux_gnueabihf": {:hex, :nerves_toolchain_arm_unknown_linux_gnueabihf, "0.11.0", "8d7606275a2d19de26ae238cd59475f4c06679aa9222b8987518d7c8a7beae51", [], [{:nerves, "~> 0.7", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.1", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm"}, + "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.1.0", "0f03e4a3f3beef5fe271de0148b9f106c417e57f303f635c21c74b4bd6eb68ee", [], [], "hexpm"}, + "nerves_wpa_supplicant": {:hex, :nerves_wpa_supplicant, "0.3.2", "19dc7e1248336e7f542b11b2b857ceb5b088d3eb41a6ca75b7b76628dcf67aad", [], [{:elixir_make, "~> 0.3", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"}, + "observer_cli": {:hex, :observer_cli, "1.1.0", "f3a47c22327424291758167df3c4600dcf8bf34795a3787612019aa5b86a5c21", [], [{:recon, "2.3.2", [hex: :recon, repo: "hexpm", optional: false]}], "hexpm"}, + "recon": {:hex, :recon, "2.3.2", "4444c879be323b1b133eec5241cb84bd3821ea194c740d75617e106be4744318", [], [], "hexpm"}, + "socket": {:hex, :socket, "0.3.12", "4a6543815136503fee67eff0932da1742fad83f84c49130c854114153cc549a6", [], [], "hexpm"}, + "system_registry": {:hex, :system_registry, "0.6.0", "31642177e6002d3cff2ada3553ed4e9c0a6ca015797d62d7d17c0ab8696185fc", [], [], "hexpm"}, +} diff --git a/rel/config.exs b/rel/config.exs index 293e920..59e9603 100644 --- a/rel/config.exs +++ b/rel/config.exs @@ -1,24 +1,23 @@ +# This sets the default release built by `mix release` +# This sets the default environment used by `mix release` use Mix.Releases.Config, - # This sets the default release built by `mix release` - default_release: :default, - # This sets the default environment used by `mix release` - default_environment: :dev + default_release: :default, + default_environment: :dev # For a full list of config options for both releases # and environments, visit https://hexdocs.pm/distillery/configuration.html - # You may define one or more environments in this file, # an environment's settings will override those of a release # when building in that environment, this combination of release # and environment configuration is called a profile environment :dev do - set cookie: :"JNP[nh_b9$D%]1P{_P2?()9*mv`Z1:E18T.w;kRLZX`_$E;es@1~3k7Upmg*IhH3" + set(cookie: :"devcookie") end environment :prod do - set cookie: :"JNP[nh_b9$D%]1P{_P2?()9*mv`Z1:E18T.w;kRLZX`_$E;es@1~3k7Upmg*IhH3" + set(cookie: :"JNP[nh_b9$D%]1P{_P2?()9*mv`Z1:E18T.w;kRLZX`_$E;es@1~3k7Upmg*IhH3") end # You may define one or more releases in this file. @@ -27,14 +26,14 @@ end # will be used by default release :duck_tag do - set version: current_version(:duck_tag) - plugin Bootloader.Plugin + set(version: current_version(:duck_tag)) + plugin(Bootloader.Plugin) + if System.get_env("NERVES_SYSTEM") do - set dev_mode: false - set include_src: false - set include_erts: System.get_env("ERL_LIB_DIR") - set include_system_libs: System.get_env("ERL_SYSTEM_LIB_DIR") - set vm_args: "rel/vm.args" + set(dev_mode: false) + set(include_src: false) + set(include_erts: System.get_env("ERL_LIB_DIR")) + set(include_system_libs: System.get_env("ERL_SYSTEM_LIB_DIR")) + set(vm_args: "rel/vm.args") end end -