makefile generation

pull/231/head
connor rigby 2017-01-16 15:52:49 -08:00
parent c6fe0cd418
commit 8aab09909d
28 changed files with 451 additions and 95 deletions

7
.gitignore vendored
View File

@ -24,3 +24,10 @@ bundle.js
erl_crash.dump
ttb_last_config
cover
Makefile.bac
# This isnt a normal Elixir project, so a mix.lock file shouldn't exist.
mix.lock
# releases generated by the Makefile
/release-*

View File

@ -57,14 +57,11 @@ mix credo --strict
```bash
cd ~/farmbot/os
# this should set up the environment needed to build the system
MIX_ENV=prod mix farmbot.system
# If that gives an error try this:
git clone https://github.com/nerves-project/nerves_system_br deps/nerves_system_br
# then try again.
export NERVES_TARGET=<MY_BOARD_CHOICE>
make create-build-${NERVES_TARGET}
# Now that the environment is set up you should change into the new dir it told you too.
cd apps/NERVES_SYSTEM_*
cd apps/NERVES_SYSTEM_${NERVES_TARGET}
# from this dir we have a few different things we can configure in buildroot.
# To add/remove linux packages.
@ -94,15 +91,12 @@ make
# on a core i7, 32 gigs or ram, nvme ssd machine, it takes about 15-20 minutes depending on if ccache is enabled.
# when the rootfs build finishes to use said rootfs in building firmware:
cd ~/farmbot/os
MIX_ENV=prod NERVES_SYSTEM=~/farmbot/os/apps/NERVES_SYSTEM_* mix firmware
cd ../farmbot
# this can then be uploaded to the device. (note you need an ip address)
MIX_ENV=prod NERVES_SYSTEM=~/farmbot/os/apps/NERVES_SYSTEM_* mix firmware --upload
mix firmware
# to burn to an sdcard. (this requires sudo)
mix firmware.burn
# or burned
MIX_ENV=prod NERVES_SYSTEM=~/farmbot/os/apps/NERVES_SYSTEM_* mix firmware
MIX_ENV=prod bash scripts/burn.sh
```
## Porting to a New System

View File

@ -1,4 +1,11 @@
# 2.1.9
* changed folder structure around
* moved farmbot_auth and farmbot_configurator back into an umbrella application
* begin migration to CeleryScript for all the things
* begin migration to CeleryScript for all the things
* Multi Platform support
* `Configurator` looks great. thanks @MrChristofferson && @RickCarlino
* Code base was converted to CeleryScript, so it is much more stable
* bot configuration is now based on a single (json) that is shared across platforms/targets
# 2.1.10
* a few minor bug fixes to the previous release.

112
Makefile 100644
View File

@ -0,0 +1,112 @@
# THIS FILE WAS GENERATED BY `build_makefile.exs`
# c6fe0cd
# Mon Jan 16 11:01:43 2017 -0800
# backup.-i-want-to-try-something
default: rpi3
dev_env:
export MIX_ENV=dev
prod_env:
export MIX_ENV=prod
clean:
$(info Cleaning)
rm -rf apps/NERVES_SYSTEM_*
rm -rf apps/farmbot/_images
rm -rf deps
rm -rf _build
test: clean dev_env
scripts/run_tests.sh
## End default portion.
## begin rpi portion.
## rpi env
env-rpi: prod_env
export NERVES_TARGET=rpi
## rpi build
rpi: env-rpi system-rpi firmware-rpi
$(info Building stuff for rpi)
## rpi create-build
create-build-rpi:
scripts/clone_system.sh rpi
## rpi system
system-rpi: create-build-rpi
$(info Building Linux System for rpi)
scripts/build_system.sh rpi
## rpi firmware
firmware-rpi:
$(info Building Firmware for rpi)
scripts/build_firmware.sh rpi
release-rpi: rpi
scripts/build_release_images.sh rpi 3.0.0-staging
## end rpi portion.
## begin rpi3 portion.
## rpi3 env
env-rpi3: prod_env
export NERVES_TARGET=rpi3
## rpi3 build
rpi3: env-rpi3 system-rpi3 firmware-rpi3
$(info Building stuff for rpi3)
## rpi3 create-build
create-build-rpi3:
scripts/clone_system.sh rpi3
## rpi3 system
system-rpi3: create-build-rpi3
$(info Building Linux System for rpi3)
scripts/build_system.sh rpi3
## rpi3 firmware
firmware-rpi3:
$(info Building Firmware for rpi3)
scripts/build_firmware.sh rpi3
release-rpi3: rpi3
scripts/build_release_images.sh rpi3 3.0.0-staging
## end rpi3 portion.
## begin rpi2 portion.
## rpi2 env
env-rpi2: prod_env
export NERVES_TARGET=rpi2
## rpi2 build
rpi2: env-rpi2 system-rpi2 firmware-rpi2
$(info Building stuff for rpi2)
## rpi2 create-build
create-build-rpi2:
scripts/clone_system.sh rpi2
## rpi2 system
system-rpi2: create-build-rpi2
$(info Building Linux System for rpi2)
scripts/build_system.sh rpi2
## rpi2 firmware
firmware-rpi2:
$(info Building Firmware for rpi2)
scripts/build_firmware.sh rpi2
release-rpi2: rpi2
scripts/build_release_images.sh rpi2 3.0.0-staging
## end rpi2 portion.
## Release will build all the systems.
release: clean release-rpi release-rpi3 release-rpi2

View File

View File

@ -1,30 +0,0 @@
#!/bin/bash
VERSION=`cat VERSION`
echo "MAKING IMAGES!"
echo "VERSION: $VERSION"
echo "NERVES_TARGET: $NERVES_TARGET"
echo ""
echo "Cleaning previous builds"
rm -rf _images/all/*$NERVES_TARGET-$VERSION*
rm -rf _images/$NERVES_TARGET/*
echo "Building firmware"
mix firmware
echo "Copying rootfs..."
cp ../NERVES_SYSTEM_$NERVES_TARGET/nerves_system_$NERVES_TARGET.tar.gz \
_images/$NERVES_TARGET/farmbot.rootfs-$NERVES_TARGET-$VERSION.tar.gz
echo "Renaming firmware"
mv _images/$NERVES_TARGET/farmbot.fw _images/$NERVES_TARGET/farmbot-$NERVES_TARGET-$VERSION.fw
echo "Building firmware image"
fwup -a -t complete -i _images/$NERVES_TARGET/farmbot-$NERVES_TARGET-$VERSION.fw \
-d _images/$NERVES_TARGET/farmbot-$NERVES_TARGET-$VERSION.img
mkdir -p _images/all
echo "Copying images"
cp _images/$NERVES_TARGET/*$NERVES_TARGET-$VERSION* _images/all

View File

@ -25,8 +25,8 @@ defmodule Farmbot.Mixfile do
start_permanent: Mix.env == :prod,
build_path: "../../_build/#{target(Mix.env)}",
deps_path: "../../deps/#{target(Mix.env)}",
config_path: "../../config/config.exs",
lockfile: "../../mix.lock",
config_path: "../../farmbot_config.exs",
lockfile: "../../mix-#{target(Mix.env())}.lock",
aliases: aliases(Mix.env),
deps: deps() ++ system(target(Mix.env)),
name: "Farmbot",

View File

@ -2,6 +2,9 @@ defmodule Farmbot.Auth.Mixfile do
use Mix.Project
@version Path.join([__DIR__, "..", "farmbot", "VERSION"]) |> File.read! |> String.strip
def target(:prod), do: System.get_env("NERVES_TARGET")
def target(_), do: "development"
def project do
[app: :farmbot_auth,
version: @version,
@ -9,9 +12,9 @@ defmodule Farmbot.Auth.Mixfile do
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,
build_path: "../../_build",
config_path: "../../config/config.exs",
config_path: "../../farmbot_config.exs",
deps_path: "../../deps",
lockfile: "../../mix.lock",
lockfile: "../../mix-#{target(Mix.env())}.lock",
deps: deps()]
end
@ -27,6 +30,6 @@ defmodule Farmbot.Auth.Mixfile do
{:nerves_lib, github: "nerves-project/nerves_lib"},
{:poison, "~> 3.0"},
{:farmbot_system, in_umbrella: true}
]
]
end
end

View File

@ -11,9 +11,9 @@ defmodule Farmbot.Configurator.Mixfile do
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,
build_path: "../../_build",
config_path: "../../config/config.exs",
config_path: "../../farmbot_config.exs",
deps_path: "../../deps",
lockfile: "../../mix.lock",
lockfile: "../../mix-#{target(Mix.env())}.lock",
target: target(Mix.env),
deps: deps()]
end

View File

@ -1,5 +1,6 @@
defmodule Farmbot.System.Mixfile do
use Mix.Project
@version Path.join([__DIR__, "..", "farmbot", "VERSION"])
|> File.read!
|> String.strip
@ -12,9 +13,9 @@ defmodule Farmbot.System.Mixfile do
[app: :farmbot_system,
version: @version,
build_path: "../../_build",
config_path: "../../config/config.exs",
config_path: "../../farmbot_config.exs",
deps_path: "../../deps",
lockfile: "../../mix.lock",
lockfile: "../../mix-#{target(Mix.env())}.lock",
elixir: "~> 1.4",
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,

View File

@ -8,9 +8,9 @@ defmodule Module.concat([Farmbot,System,"development",Mixfile]) do
[app: :farmbot_system_development,
version: @version,
build_path: "../../_build",
config_path: "../../config/config.exs",
config_path: "../../farmbot_config.exs",
deps_path: "../../deps",
lockfile: "../../mix.lock",
lockfile: "../../mix-devlopment.lock",
elixir: "~> 1.4",
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,

View File

@ -4,13 +4,16 @@ defmodule Farmbot.System.NervesCommon.Mixfile do
|> File.read!
|> String.strip
def target(:prod), do: System.get_env("NERVES_TARGET")
def target(_), do: "development"
def project do
[app: :farmbot_system_nerves_common,
version: @version,
build_path: "../../_build",
config_path: "../../config/config.exs",
config_path: "../../farmbot_config.exs",
deps_path: "../../deps",
lockfile: "../../mix.lock",
lockfile: "../../mix-#{target(Mix.env())}.lock",
elixir: "~> 1.4",
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,

View File

@ -8,9 +8,9 @@ defmodule Module.concat([Farmbot, System, "rpi", Mixfile]) do
[app: :farmbot_system_rpi,
version: @version,
build_path: "../../_build",
config_path: "../../config/config.exs",
config_path: "../../farmbot_config.exs",
deps_path: "../../deps",
lockfile: "../../mix.lock",
lockfile: "../../mix-rpi.lock",
elixir: "~> 1.4",
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,

View File

@ -8,9 +8,9 @@ defmodule Module.concat([Farmbot, System, "rpi2", Mixfile]) do
[app: :farmbot_system_rpi2,
version: @version,
build_path: "../../_build",
config_path: "../../config/config.exs",
config_path: "../../farmbot_config.exs",
deps_path: "../../deps",
lockfile: "../../mix.lock",
lockfile: "../../mix-rpi2.lock",
elixir: "~> 1.4",
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,

View File

@ -8,9 +8,9 @@ defmodule Module.concat([Farmbot, System, "rpi3", Mixfile]) do
[app: :farmbot_system_rpi3,
version: @version,
build_path: "../../_build",
config_path: "../../config/config.exs",
config_path: "../../farmbot_config.exs",
deps_path: "../../deps",
lockfile: "../../mix.lock",
lockfile: "../../mix-rpi3.lock",
elixir: "~> 1.4",
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,

View File

@ -9,10 +9,6 @@ defmodule NervesSystemRpi3.Mixfile do
[app: :nerves_system_rpi3,
version: @version,
elixir: "~> 1.2",
build_path: "../../_build",
config_path: "../../config/config.exs",
deps_path: "../../deps",
lockfile: "../../mix.lock",
compilers: Mix.compilers ++ [:nerves_package],
description: description(),
package: package(),

View File

@ -1,2 +1,2 @@
use Mix.Config
import_config "../apps/*/config/config.exs"
import_config "apps/farmbot/config/config.exs"

View File

@ -0,0 +1,83 @@
IO.puts "Backing up old Makefile"
File.cp "Makefile", "Makefile.bac"
version = Path.join(__DIR__, "VERSION") |> File.read! |> String.strip
{commitish, _} = System.cmd("git", ["log", "--pretty=format:%hQQ%adQQ%f", "-1"])
thing = String.split(commitish, "QQ")
IO.puts "Building default portions"
initial = "# THIS FILE WAS GENERATED BY `build_makefile.exs`
# #{Enum.join(thing, "\n# ")}
default: rpi3
dev_env:
\texport MIX_ENV=dev
prod_env:
\texport MIX_ENV=prod
clean:
\t$(info Cleaning)
\trm -rf apps/NERVES_SYSTEM_*
\trm -rf apps/farmbot/_images
\trm -rf deps
\trm -rf _build
test: clean dev_env
\tscripts/run_tests.sh
## End default portion.\n"
build_system_part = fn(sys) ->
"\n## begin #{sys} portion.
## #{sys} env
env-#{sys}: prod_env
\texport NERVES_TARGET=#{sys}
## #{sys} build
#{sys}: env-#{sys} system-#{sys} firmware-#{sys}
\t$(info Building stuff for #{sys})
## #{sys} create-build
create-build-#{sys}:
\tscripts/clone_system.sh #{sys}
## #{sys} system
system-#{sys}: create-build-#{sys}
\t$(info Building Linux System for #{sys})
\tscripts/build_system.sh #{sys}
## #{sys} firmware
firmware-#{sys}:
\t$(info Building Firmware for #{sys})
\tscripts/build_firmware.sh #{sys}
release-#{sys}: #{sys}
\tscripts/build_release_images.sh #{sys} #{version}
## end #{sys} portion."
end
list = File.ls!("apps")
only_systems = Enum.reduce(list, [], fn(d, acc) ->
case d do
# ignore nerves_system_br
"nerves_system_br" -> acc
"nerves_system_"<> sys -> [sys | acc]
_ -> acc
end
end)
initial_mod = Enum.reduce(only_systems, initial, fn(sys, acc) ->
IO.puts "Defining system: #{sys}"
acc <> build_system_part.(sys)
end)
IO.puts "Defining release for #{version}"
final = initial_mod <>
"\n\n## Release will build all the systems.
release: clean #{Enum.map(only_systems, fn(a) -> " release-"<>a end)}"
IO.puts "Writing file."
File.write("Makefile", final)

View File

@ -0,0 +1,38 @@
%{"amnesia": {:git, "https://github.com/meh/amnesia.git", "211d98275c085a9e3049ccb8db8d29f76b3ffbfc", []},
"bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], []},
"calendar": {:hex, :calendar, "0.17.1", "5c7dfffde2b68011c2d6832ff1a15496292de965a3b57b3fad32405f1176f024", [:mix], [{:tzdata, "~> 0.5.8 or ~> 0.1.201603", [hex: :tzdata, optional: false]}]},
"certifi": {:hex, :certifi, "0.7.0", "861a57f3808f7eb0c2d1802afeaae0fa5de813b0df0979153cbafcd853ababaf", [:rebar3], []},
"combine": {:hex, :combine, "0.9.6", "8d1034a127d4cbf6924c8a5010d3534d958085575fa4d9b878f200d79ac78335", [:mix], []},
"cors_plug": {:hex, :cors_plug, "1.1.4", "b4c2f0de641700cd3168b90223d12dd5a3e9c54804c0c2451abe1b292620b375", [:mix], [{:cowboy, "~> 1.0.0", [hex: :cowboy, optional: false]}, {:plug, "> 0.8.0", [hex: :plug, optional: false]}]},
"cowboy": {:hex, :cowboy, "1.0.4", "a324a8df9f2316c833a470d918aaf73ae894278b8aa6226ce7a9bf699388f878", [:make, :rebar], [{:cowlib, "~> 1.0.0", [hex: :cowlib, optional: false]}, {:ranch, "~> 1.0", [hex: :ranch, optional: false]}]},
"cowlib": {:hex, :cowlib, "1.0.2", "9d769a1d062c9c3ac753096f868ca121e2730b9a377de23dec0f7e08b1df84ee", [:make], []},
"credo": {:hex, :credo, "0.6.0-rc1", "3db898270ba651aa7d8dc8d844f2827e0111526a01474ab088c7f7f677e83778", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, optional: false]}]},
"distillery": {:hex, :distillery, "1.0.0", "a866a72bf2a3a5f078f5a249017ed951acda88a760d200512f91f585d74db1ec", [:mix], []},
"earmark": {:hex, :earmark, "1.0.3", "89bdbaf2aca8bbb5c97d8b3b55c5dd0cff517ecc78d417e87f1d0982e514557b", [:mix], []},
"elixir_make": {:hex, :elixir_make, "0.4.0", "992f38fabe705bb45821a728f20914c554b276838433349d4f2341f7a687cddf", [:mix], []},
"ex_doc": {:hex, :ex_doc, "0.14.5", "c0433c8117e948404d93ca69411dd575ec6be39b47802e81ca8d91017a0cf83c", [:mix], [{:earmark, "~> 1.0", [hex: :earmark, optional: false]}]},
"exquisite": {:hex, :exquisite, "0.1.7", "4106503e976f409246731b168cd76eb54262bd04f4facc5cba82c2f53982aaf0", [:mix], []},
"faker": {:hex, :faker, "0.7.0", "2c42deeac7be717173c78c77fb3edc749fb5d5e460e33d01fe592ae99acc2f0d", [:mix], []},
"gen_mqtt": {:hex, :gen_mqtt, "0.3.1", "6ce6af7c2bcb125d5b4125c67c5ab1f29bcec2638236509bcc6abf510a6661ed", [:mix], [{:vmq_commons, "1.0.0", [hex: :vmq_commons, optional: false]}]},
"gen_stage": {:hex, :gen_stage, "0.10.0", "ce1eb93a3f9708f2e215f70b3d3c7f55dea4a4ed7e9615195e28d543c9086656", [:mix], []},
"gettext": {:hex, :gettext, "0.13.0", "daafbddc5cda12738bb93b01d84105fe75b916a302f1c50ab9fb066b95ec9db4", [:mix], []},
"hackney": {:hex, :hackney, "1.6.5", "8c025ee397ac94a184b0743c73b33b96465e85f90a02e210e86df6cbafaa5065", [:rebar3], [{:certifi, "0.7.0", [hex: :certifi, optional: false]}, {:idna, "1.2.0", [hex: :idna, optional: false]}, {:metrics, "1.0.1", [hex: :metrics, optional: false]}, {:mimerl, "1.0.2", [hex: :mimerl, optional: false]}, {:ssl_verify_fun, "1.1.1", [hex: :ssl_verify_fun, optional: false]}]},
"httpotion": {:hex, :httpotion, "3.0.2", "525b9bfeb592c914a61a8ee31fdde3871e1861dfe805f8ee5f711f9f11a93483", [:mix], [{:ibrowse, "~> 4.2", [hex: :ibrowse, optional: false]}]},
"ibrowse": {:hex, :ibrowse, "4.2.2", "b32b5bafcc77b7277eff030ed32e1acc3f610c64e9f6aea19822abcadf681b4b", [:rebar3], []},
"idna": {:hex, :idna, "1.2.0", "ac62ee99da068f43c50dc69acf700e03a62a348360126260e87f2b54eced86b2", [:rebar3], []},
"metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], []},
"mime": {:hex, :mime, "1.0.1", "05c393850524767d13a53627df71beeebb016205eb43bfbd92d14d24ec7a1b51", [:mix], []},
"mimerl": {:hex, :mimerl, "1.0.2", "993f9b0e084083405ed8252b99460c4f0563e41729ab42d9074fd5e52439be88", [:rebar3], []},
"mustache": {:hex, :mustache, "0.0.2", "870fbef411c47d17df06a57b8b3f69e26eb110cba0177c34e273db5d94369d9b", [:mix], []},
"nerves": {:hex, :nerves, "0.4.5", "1a82415b7b60fef675a50be85ba8c37b13713d45a47acdded64e6e28ea9309a5", [:mix], [{:distillery, "~> 1.0.0", [hex: :distillery, optional: false]}]},
"nerves_lib": {:git, "https://github.com/nerves-project/nerves_lib.git", "aac351cb3e621831a317f2d2a078257161efa551", []},
"nerves_uart": {:hex, :nerves_uart, "0.1.1", "32e6186b1a1b1d744631126df0b6c4049ddde5b04bc0303de29ab86a2edf60a2", [:make, :mix], [{:elixir_make, "~> 0.3", [hex: :elixir_make, optional: false]}]},
"plug": {:hex, :plug, "1.3.0", "6e2b01afc5db3fd011ca4a16efd9cb424528c157c30a44a0186bcc92c7b2e8f3", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1", [hex: :cowboy, optional: true]}, {:mime, "~> 1.0", [hex: :mime, optional: false]}]},
"poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], []},
"quantum": {:hex, :quantum, "1.8.1", "37c9ad0307cf47bd578507ce1ddda98746199b281e8afe91cbe44c21d56af983", [:mix], [{:calendar, "~> 0.16", [hex: :calendar, optional: false]}]},
"ranch": {:hex, :ranch, "1.2.1", "a6fb992c10f2187b46ffd17ce398ddf8a54f691b81768f9ef5f461ea7e28c762", [:make], []},
"rsa": {:hex, :rsa, "0.0.1", "a63069f88ce342ffdf8448b7cdef4b39ba7dee3c1510644a39385c7e63ba246f", [:mix], []},
"ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.1", "28a4d65b7f59893bc2c7de786dec1e1555bd742d336043fe644ae956c3497fbe", [:make, :rebar], []},
"timex": {:hex, :timex, "3.1.7", "71f9c32e13ff4860e86a314303757cc02b3ead5db6e977579a2935225ce9a666", [:mix], [{:combine, "~> 0.7", [hex: :combine, optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, optional: false]}, {:tzdata, "~> 0.1.8 or ~> 0.5", [hex: :tzdata, optional: false]}]},
"tzdata": {:hex, :tzdata, "0.5.10", "087e8dfe8c0283473115ad8ca6974b898ecb55ca5c725427a142a79593391e90", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, optional: false]}]},
"vmq_commons": {:hex, :vmq_commons, "1.0.0", "5f5005c12db33f92f40e818a3617fb148972d59adcf99298c9d3808ef3582e34", [:rebar3], []}}

48
mix-rpi.lock 100644
View File

@ -0,0 +1,48 @@
%{"amnesia": {:git, "https://github.com/meh/amnesia.git", "211d98275c085a9e3049ccb8db8d29f76b3ffbfc", []},
"bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], []},
"calendar": {:hex, :calendar, "0.17.1", "5c7dfffde2b68011c2d6832ff1a15496292de965a3b57b3fad32405f1176f024", [:mix], [{:tzdata, "~> 0.5.8 or ~> 0.1.201603", [hex: :tzdata, optional: false]}]},
"certifi": {:hex, :certifi, "0.7.0", "861a57f3808f7eb0c2d1802afeaae0fa5de813b0df0979153cbafcd853ababaf", [:rebar3], []},
"combine": {:hex, :combine, "0.9.6", "8d1034a127d4cbf6924c8a5010d3534d958085575fa4d9b878f200d79ac78335", [:mix], []},
"cors_plug": {:hex, :cors_plug, "1.1.4", "b4c2f0de641700cd3168b90223d12dd5a3e9c54804c0c2451abe1b292620b375", [:mix], [{:cowboy, "~> 1.0.0", [hex: :cowboy, optional: false]}, {:plug, "> 0.8.0", [hex: :plug, optional: false]}]},
"cowboy": {:hex, :cowboy, "1.0.4", "a324a8df9f2316c833a470d918aaf73ae894278b8aa6226ce7a9bf699388f878", [:make, :rebar], [{:cowlib, "~> 1.0.0", [hex: :cowlib, optional: false]}, {:ranch, "~> 1.0", [hex: :ranch, optional: false]}]},
"cowlib": {:hex, :cowlib, "1.0.2", "9d769a1d062c9c3ac753096f868ca121e2730b9a377de23dec0f7e08b1df84ee", [:make], []},
"credo": {:hex, :credo, "0.6.0-rc1", "3db898270ba651aa7d8dc8d844f2827e0111526a01474ab088c7f7f677e83778", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, optional: false]}]},
"distillery": {:hex, :distillery, "1.0.0", "a866a72bf2a3a5f078f5a249017ed951acda88a760d200512f91f585d74db1ec", [:mix], []},
"earmark": {:hex, :earmark, "1.0.3", "89bdbaf2aca8bbb5c97d8b3b55c5dd0cff517ecc78d417e87f1d0982e514557b", [:mix], []},
"elixir_make": {:hex, :elixir_make, "0.4.0", "992f38fabe705bb45821a728f20914c554b276838433349d4f2341f7a687cddf", [:mix], []},
"ex_doc": {:hex, :ex_doc, "0.14.5", "c0433c8117e948404d93ca69411dd575ec6be39b47802e81ca8d91017a0cf83c", [:mix], [{:earmark, "~> 1.0", [hex: :earmark, optional: false]}]},
"exjsx": {:hex, :exjsx, "3.2.1", "1bc5bf1e4fd249104178f0885030bcd75a4526f4d2a1e976f4b428d347614f0f", [:mix], [{:jsx, "~> 2.8.0", [hex: :jsx, optional: false]}]},
"exquisite": {:hex, :exquisite, "0.1.7", "4106503e976f409246731b168cd76eb54262bd04f4facc5cba82c2f53982aaf0", [:mix], []},
"faker": {:hex, :faker, "0.7.0", "2c42deeac7be717173c78c77fb3edc749fb5d5e460e33d01fe592ae99acc2f0d", [:mix], []},
"gen_mqtt": {:hex, :gen_mqtt, "0.3.1", "6ce6af7c2bcb125d5b4125c67c5ab1f29bcec2638236509bcc6abf510a6661ed", [:mix], [{:vmq_commons, "1.0.0", [hex: :vmq_commons, optional: false]}]},
"gen_stage": {:hex, :gen_stage, "0.10.0", "ce1eb93a3f9708f2e215f70b3d3c7f55dea4a4ed7e9615195e28d543c9086656", [:mix], []},
"gettext": {:hex, :gettext, "0.13.0", "daafbddc5cda12738bb93b01d84105fe75b916a302f1c50ab9fb066b95ec9db4", [:mix], []},
"hackney": {:hex, :hackney, "1.6.5", "8c025ee397ac94a184b0743c73b33b96465e85f90a02e210e86df6cbafaa5065", [:rebar3], [{:certifi, "0.7.0", [hex: :certifi, optional: false]}, {:idna, "1.2.0", [hex: :idna, optional: false]}, {:metrics, "1.0.1", [hex: :metrics, optional: false]}, {:mimerl, "1.0.2", [hex: :mimerl, optional: false]}, {:ssl_verify_fun, "1.1.1", [hex: :ssl_verify_fun, optional: false]}]},
"httpotion": {:hex, :httpotion, "3.0.2", "525b9bfeb592c914a61a8ee31fdde3871e1861dfe805f8ee5f711f9f11a93483", [:mix], [{:ibrowse, "~> 4.2", [hex: :ibrowse, optional: false]}]},
"ibrowse": {:hex, :ibrowse, "4.2.2", "b32b5bafcc77b7277eff030ed32e1acc3f610c64e9f6aea19822abcadf681b4b", [:rebar3], []},
"idna": {:hex, :idna, "1.2.0", "ac62ee99da068f43c50dc69acf700e03a62a348360126260e87f2b54eced86b2", [:rebar3], []},
"jsx": {:hex, :jsx, "2.8.1", "1453b4eb3615acb3e2cd0a105d27e6761e2ed2e501ac0b390f5bbec497669846", [:mix, :rebar3], []},
"metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], []},
"mime": {:hex, :mime, "1.0.1", "05c393850524767d13a53627df71beeebb016205eb43bfbd92d14d24ec7a1b51", [:mix], []},
"mimerl": {:hex, :mimerl, "1.0.2", "993f9b0e084083405ed8252b99460c4f0563e41729ab42d9074fd5e52439be88", [:rebar3], []},
"mustache": {:hex, :mustache, "0.0.2", "870fbef411c47d17df06a57b8b3f69e26eb110cba0177c34e273db5d94369d9b", [:mix], []},
"nerves": {:hex, :nerves, "0.4.5", "1a82415b7b60fef675a50be85ba8c37b13713d45a47acdded64e6e28ea9309a5", [:mix], [{:distillery, "~> 1.0.0", [hex: :distillery, optional: false]}]},
"nerves_firmware": {:git, "https://github.com/nerves-project/nerves_firmware.git", "241a12694bd3bc2b4df8cbb7e0f0beaeff075b1c", []},
"nerves_firmware_http": {:git, "https://github.com/nerves-project/nerves_firmware_http.git", "cc2cb110b0587a482d454175916dc597d62c4bfa", []},
"nerves_interim_wifi": {:git, "https://github.com/nerves-project/nerves_interim_wifi.git", "32e848274571e328ebd7155848cc28d020938429", []},
"nerves_lib": {:git, "https://github.com/nerves-project/nerves_lib.git", "aac351cb3e621831a317f2d2a078257161efa551", []},
"nerves_network_interface": {:hex, :nerves_network_interface, "0.3.2", "e7450f7eccd7387ceebee6096a0646bcdc0dd4aa77077e5fa81f6767da9b77af", [:make, :mix], [{:elixir_make, "~> 0.3", [hex: :elixir_make, optional: false]}]},
"nerves_system_br": {:hex, :nerves_system_br, "0.8.2", "f9917e75b54fb3eadbd67c2123ac1406d0a7fdef24f1960e3577c759d0a6fbc7", [:mix], []},
"nerves_toolchain_armv6_rpi_linux_gnueabi": {:hex, :nerves_toolchain_armv6_rpi_linux_gnueabi, "0.8.0", "7e46564ce2b8eca7fed4d50a41a5bb7381d817e6d80d198c22e204758f49ff11", [:mix], [{:nerves, "~> 0.4.0", [hex: :nerves, optional: false]}, {:nerves_toolchain_ctng, "~> 0.8.0", [hex: :nerves_toolchain_ctng, optional: false]}]},
"nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "0.8.0", "6dff7ed51e1711c5f4da3d559bc528a8265e3dd950dda95f4d6832aed9dbe320", [:mix], []},
"nerves_uart": {:hex, :nerves_uart, "0.1.1", "32e6186b1a1b1d744631126df0b6c4049ddde5b04bc0303de29ab86a2edf60a2", [:make, :mix], [{:elixir_make, "~> 0.3", [hex: :elixir_make, optional: false]}]},
"nerves_wpa_supplicant": {:hex, :nerves_wpa_supplicant, "0.2.2", "da829baec94a8afa7da3a6beaaf1725b9ca7f5f58779ba50b73568b7d37d3d98", [:make, :mix], [{:elixir_make, "~> 0.3", [hex: :elixir_make, optional: false]}]},
"plug": {:hex, :plug, "1.3.0", "6e2b01afc5db3fd011ca4a16efd9cb424528c157c30a44a0186bcc92c7b2e8f3", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1", [hex: :cowboy, optional: true]}, {:mime, "~> 1.0", [hex: :mime, optional: false]}]},
"poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], []},
"quantum": {:hex, :quantum, "1.8.1", "37c9ad0307cf47bd578507ce1ddda98746199b281e8afe91cbe44c21d56af983", [:mix], [{:calendar, "~> 0.16", [hex: :calendar, optional: false]}]},
"ranch": {:hex, :ranch, "1.2.1", "a6fb992c10f2187b46ffd17ce398ddf8a54f691b81768f9ef5f461ea7e28c762", [:make], []},
"rsa": {:hex, :rsa, "0.0.1", "a63069f88ce342ffdf8448b7cdef4b39ba7dee3c1510644a39385c7e63ba246f", [:mix], []},
"ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.1", "28a4d65b7f59893bc2c7de786dec1e1555bd742d336043fe644ae956c3497fbe", [:make, :rebar], []},
"timex": {:hex, :timex, "3.1.7", "71f9c32e13ff4860e86a314303757cc02b3ead5db6e977579a2935225ce9a666", [:mix], [{:combine, "~> 0.7", [hex: :combine, optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, optional: false]}, {:tzdata, "~> 0.1.8 or ~> 0.5", [hex: :tzdata, optional: false]}]},
"tzdata": {:hex, :tzdata, "0.5.10", "087e8dfe8c0283473115ad8ca6974b898ecb55ca5c725427a142a79593391e90", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, optional: false]}]},
"vmq_commons": {:hex, :vmq_commons, "1.0.0", "5f5005c12db33f92f40e818a3617fb148972d59adcf99298c9d3808ef3582e34", [:rebar3], []}}

View File

@ -1,28 +1,23 @@
%{"amnesia": {:git, "https://github.com/meh/amnesia.git", "211d98275c085a9e3049ccb8db8d29f76b3ffbfc", []},
"bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], []},
"calendar": {:hex, :calendar, "0.16.1", "782327ad8bae7c797b887840dc4ddb933f05ce6e333e5b04964d7a5d5f79bde3", [:mix], [{:tzdata, "~> 0.5.8 or ~> 0.1.201603", [hex: :tzdata, optional: false]}]},
"calendar": {:hex, :calendar, "0.17.1", "5c7dfffde2b68011c2d6832ff1a15496292de965a3b57b3fad32405f1176f024", [:mix], [{:tzdata, "~> 0.5.8 or ~> 0.1.201603", [hex: :tzdata, optional: false]}]},
"certifi": {:hex, :certifi, "0.7.0", "861a57f3808f7eb0c2d1802afeaae0fa5de813b0df0979153cbafcd853ababaf", [:rebar3], []},
"combine": {:hex, :combine, "0.9.3", "192e609b48b3f2210494e26f85db1712657be1a8f15795656710317ea43fc449", [:mix], []},
"cors_plug": {:hex, :cors_plug, "1.1.2", "3e7451286996f745c7b629c39d24a6493e59b0c8191f27e67f6ab097f96ffd23", [:mix], [{:cowboy, "~> 1.0.0", [hex: :cowboy, optional: false]}, {:plug, "> 0.8.0", [hex: :plug, optional: false]}]},
"combine": {:hex, :combine, "0.9.6", "8d1034a127d4cbf6924c8a5010d3534d958085575fa4d9b878f200d79ac78335", [:mix], []},
"cors_plug": {:hex, :cors_plug, "1.1.4", "b4c2f0de641700cd3168b90223d12dd5a3e9c54804c0c2451abe1b292620b375", [:mix], [{:cowboy, "~> 1.0.0", [hex: :cowboy, optional: false]}, {:plug, "> 0.8.0", [hex: :plug, optional: false]}]},
"cowboy": {:hex, :cowboy, "1.0.4", "a324a8df9f2316c833a470d918aaf73ae894278b8aa6226ce7a9bf699388f878", [:make, :rebar], [{:cowlib, "~> 1.0.0", [hex: :cowlib, optional: false]}, {:ranch, "~> 1.0", [hex: :ranch, optional: false]}]},
"cowlib": {:hex, :cowlib, "1.0.2", "9d769a1d062c9c3ac753096f868ca121e2730b9a377de23dec0f7e08b1df84ee", [:make], []},
"credo": {:hex, :credo, "0.6.0-rc1", "3db898270ba651aa7d8dc8d844f2827e0111526a01474ab088c7f7f677e83778", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, optional: false]}]},
"dialyxir": {:hex, :dialyxir, "0.4.1", "236056d6acd25f740f336756c0f3b5dd6e2f0156074bc15f3b779aeee15390c8", [:mix], []},
"distillery": {:hex, :distillery, "1.0.0", "a866a72bf2a3a5f078f5a249017ed951acda88a760d200512f91f585d74db1ec", [:mix], []},
"earmark": {:hex, :earmark, "1.0.3", "89bdbaf2aca8bbb5c97d8b3b55c5dd0cff517ecc78d417e87f1d0982e514557b", [:mix], []},
"elixir_ale": {:hex, :elixir_ale, "0.5.6", "a94c89a17ec39ad4c4a9a90d4f00bd9f33b2f2e98703317fbdf5efceab276b44", [:make, :mix], [{:elixir_make, "~> 0.3", [hex: :elixir_make, optional: false]}]},
"elixir_make": {:hex, :elixir_make, "0.4.0", "992f38fabe705bb45821a728f20914c554b276838433349d4f2341f7a687cddf", [:mix], []},
"ex_doc": {:hex, :ex_doc, "0.14.5", "c0433c8117e948404d93ca69411dd575ec6be39b47802e81ca8d91017a0cf83c", [:mix], [{:earmark, "~> 1.0", [hex: :earmark, optional: false]}]},
"excoveralls": {:hex, :excoveralls, "0.5.7", "5d26e4a7cdf08294217594a1b0643636accc2ad30e984d62f1d166f70629ff50", [:mix], [{:exjsx, "~> 3.0", [hex: :exjsx, optional: false]}, {:hackney, ">= 0.12.0", [hex: :hackney, optional: false]}]},
"exjsx": {:hex, :exjsx, "3.2.1", "1bc5bf1e4fd249104178f0885030bcd75a4526f4d2a1e976f4b428d347614f0f", [:mix], [{:jsx, "~> 2.8.0", [hex: :jsx, optional: false]}]},
"exquisite": {:hex, :exquisite, "0.1.7", "4106503e976f409246731b168cd76eb54262bd04f4facc5cba82c2f53982aaf0", [:mix], []},
"fake_nerves": {:git, "https://github.com/ConnorRigby/fake_nerves.git", "47b72e2705cbee080da79d0762031bd0801c5d0d", []},
"faker": {:hex, :faker, "0.7.0", "2c42deeac7be717173c78c77fb3edc749fb5d5e460e33d01fe592ae99acc2f0d", [:mix], []},
"gen_mqtt": {:hex, :gen_mqtt, "0.3.1", "6ce6af7c2bcb125d5b4125c67c5ab1f29bcec2638236509bcc6abf510a6661ed", [:mix], [{:vmq_commons, "1.0.0", [hex: :vmq_commons, optional: false]}]},
"gen_stage": {:hex, :gen_stage, "0.10.0", "ce1eb93a3f9708f2e215f70b3d3c7f55dea4a4ed7e9615195e28d543c9086656", [:mix], []},
"gettext": {:hex, :gettext, "0.13.0", "daafbddc5cda12738bb93b01d84105fe75b916a302f1c50ab9fb066b95ec9db4", [:mix], []},
"hackney": {:hex, :hackney, "1.6.5", "8c025ee397ac94a184b0743c73b33b96465e85f90a02e210e86df6cbafaa5065", [:rebar3], [{:certifi, "0.7.0", [hex: :certifi, optional: false]}, {:idna, "1.2.0", [hex: :idna, optional: false]}, {:metrics, "1.0.1", [hex: :metrics, optional: false]}, {:mimerl, "1.0.2", [hex: :mimerl, optional: false]}, {:ssl_verify_fun, "1.1.1", [hex: :ssl_verify_fun, optional: false]}]},
"httpoison": {:hex, :httpoison, "0.10.0", "4727b3a5e57e9a4ff168a3c2883e20f1208103a41bccc4754f15a9366f49b676", [:mix], [{:hackney, "~> 1.6.3", [hex: :hackney, optional: false]}]},
"httpotion": {:hex, :httpotion, "3.0.2", "525b9bfeb592c914a61a8ee31fdde3871e1861dfe805f8ee5f711f9f11a93483", [:mix], [{:ibrowse, "~> 4.2", [hex: :ibrowse, optional: false]}]},
"ibrowse": {:hex, :ibrowse, "4.2.2", "b32b5bafcc77b7277eff030ed32e1acc3f610c64e9f6aea19822abcadf681b4b", [:rebar3], []},
"idna": {:hex, :idna, "1.2.0", "ac62ee99da068f43c50dc69acf700e03a62a348360126260e87f2b54eced86b2", [:rebar3], []},
@ -35,22 +30,19 @@
"nerves_firmware": {:git, "https://github.com/nerves-project/nerves_firmware.git", "241a12694bd3bc2b4df8cbb7e0f0beaeff075b1c", []},
"nerves_firmware_http": {:git, "https://github.com/nerves-project/nerves_firmware_http.git", "cc2cb110b0587a482d454175916dc597d62c4bfa", []},
"nerves_interim_wifi": {:git, "https://github.com/nerves-project/nerves_interim_wifi.git", "32e848274571e328ebd7155848cc28d020938429", []},
"nerves_leds": {:hex, :nerves_leds, "0.7.0", "1d0f6587a9ac27c3ad3767a4dd84098e21e48fa3dc5526d5e11ddde48212e186", [:mix], []},
"nerves_lib": {:git, "https://github.com/nerves-project/nerves_lib.git", "aac351cb3e621831a317f2d2a078257161efa551", []},
"nerves_network_interface": {:hex, :nerves_network_interface, "0.3.2", "e7450f7eccd7387ceebee6096a0646bcdc0dd4aa77077e5fa81f6767da9b77af", [:make, :mix], [{:elixir_make, "~> 0.3", [hex: :elixir_make, optional: false]}]},
"nerves_system_br": {:hex, :nerves_system_br, "0.8.1", "86889f97719eae6ec243ba0b8f445a25cabc0463d2e9606293cb4033f2c6b9e4", [:mix], []},
"nerves_system_br": {:hex, :nerves_system_br, "0.8.2", "f9917e75b54fb3eadbd67c2123ac1406d0a7fdef24f1960e3577c759d0a6fbc7", [:mix], []},
"nerves_toolchain_arm_unknown_linux_gnueabihf": {:hex, :nerves_toolchain_arm_unknown_linux_gnueabihf, "0.8.0", "873f8d6f74413c14eda3462b397a88f043a6c3bd65f56ff57db4e2e1eaf48994", [:mix], [{:nerves, "~> 0.4.0", [hex: :nerves, optional: false]}, {:nerves_toolchain_ctng, "~> 0.8.0", [hex: :nerves_toolchain_ctng, optional: false]}]},
"nerves_toolchain_armv6_rpi_linux_gnueabi": {:hex, :nerves_toolchain_armv6_rpi_linux_gnueabi, "0.8.0", "7e46564ce2b8eca7fed4d50a41a5bb7381d817e6d80d198c22e204758f49ff11", [:mix], [{:nerves, "~> 0.4.0", [hex: :nerves, optional: false]}, {:nerves_toolchain_ctng, "~> 0.8.0", [hex: :nerves_toolchain_ctng, optional: false]}]},
"nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "0.8.0", "6dff7ed51e1711c5f4da3d559bc528a8265e3dd950dda95f4d6832aed9dbe320", [:mix], []},
"nerves_uart": {:hex, :nerves_uart, "0.1.1", "32e6186b1a1b1d744631126df0b6c4049ddde5b04bc0303de29ab86a2edf60a2", [:make, :mix], [{:elixir_make, "~> 0.3", [hex: :elixir_make, optional: false]}]},
"nerves_wpa_supplicant": {:hex, :nerves_wpa_supplicant, "0.2.2", "da829baec94a8afa7da3a6beaaf1725b9ca7f5f58779ba50b73568b7d37d3d98", [:make, :mix], [{:elixir_make, "~> 0.3", [hex: :elixir_make, optional: false]}]},
"plug": {:hex, :plug, "1.3.0", "6e2b01afc5db3fd011ca4a16efd9cb424528c157c30a44a0186bcc92c7b2e8f3", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1", [hex: :cowboy, optional: true]}, {:mime, "~> 1.0", [hex: :mime, optional: false]}]},
"poison": {:hex, :poison, "3.0.0", "625ebd64d33ae2e65201c2c14d6c85c27cc8b68f2d0dd37828fde9c6920dd131", [:mix], []},
"poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], []},
"quantum": {:hex, :quantum, "1.8.1", "37c9ad0307cf47bd578507ce1ddda98746199b281e8afe91cbe44c21d56af983", [:mix], [{:calendar, "~> 0.16", [hex: :calendar, optional: false]}]},
"ranch": {:hex, :ranch, "1.2.1", "a6fb992c10f2187b46ffd17ce398ddf8a54f691b81768f9ef5f461ea7e28c762", [:make], []},
"rsa": {:hex, :rsa, "0.0.1", "a63069f88ce342ffdf8448b7cdef4b39ba7dee3c1510644a39385c7e63ba246f", [:mix], []},
"socket": {:git, "https://github.com/meh/elixir-socket.git", "cfcc976745687979551bc15fd6e5a63ef08a3c07", []},
"ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.1", "28a4d65b7f59893bc2c7de786dec1e1555bd742d336043fe644ae956c3497fbe", [:make, :rebar], []},
"timex": {:hex, :timex, "3.1.5", "413d6d8d6f0162a5d47080cb8ca520d790184ac43e097c95191c7563bf25b428", [:mix], [{:combine, "~> 0.7", [hex: :combine, optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, optional: false]}, {:tzdata, "~> 0.1.8 or ~> 0.5", [hex: :tzdata, optional: false]}]},
"tzdata": {:hex, :tzdata, "0.5.9", "575be217b039057a47e133b72838cbe104fb5329b19906ea4e66857001c37edb", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, optional: false]}]},
"timex": {:hex, :timex, "3.1.7", "71f9c32e13ff4860e86a314303757cc02b3ead5db6e977579a2935225ce9a666", [:mix], [{:combine, "~> 0.7", [hex: :combine, optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, optional: false]}, {:tzdata, "~> 0.1.8 or ~> 0.5", [hex: :tzdata, optional: false]}]},
"tzdata": {:hex, :tzdata, "0.5.10", "087e8dfe8c0283473115ad8ca6974b898ecb55ca5c725427a142a79593391e90", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, optional: false]}]},
"vmq_commons": {:hex, :vmq_commons, "1.0.0", "5f5005c12db33f92f40e818a3617fb148972d59adcf99298c9d3808ef3582e34", [:rebar3], []}}

48
mix-rpi3.lock 100644
View File

@ -0,0 +1,48 @@
%{"amnesia": {:git, "https://github.com/meh/amnesia.git", "211d98275c085a9e3049ccb8db8d29f76b3ffbfc", []},
"bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], []},
"calendar": {:hex, :calendar, "0.17.1", "5c7dfffde2b68011c2d6832ff1a15496292de965a3b57b3fad32405f1176f024", [:mix], [{:tzdata, "~> 0.5.8 or ~> 0.1.201603", [hex: :tzdata, optional: false]}]},
"certifi": {:hex, :certifi, "0.7.0", "861a57f3808f7eb0c2d1802afeaae0fa5de813b0df0979153cbafcd853ababaf", [:rebar3], []},
"combine": {:hex, :combine, "0.9.6", "8d1034a127d4cbf6924c8a5010d3534d958085575fa4d9b878f200d79ac78335", [:mix], []},
"cors_plug": {:hex, :cors_plug, "1.1.4", "b4c2f0de641700cd3168b90223d12dd5a3e9c54804c0c2451abe1b292620b375", [:mix], [{:cowboy, "~> 1.0.0", [hex: :cowboy, optional: false]}, {:plug, "> 0.8.0", [hex: :plug, optional: false]}]},
"cowboy": {:hex, :cowboy, "1.0.4", "a324a8df9f2316c833a470d918aaf73ae894278b8aa6226ce7a9bf699388f878", [:make, :rebar], [{:cowlib, "~> 1.0.0", [hex: :cowlib, optional: false]}, {:ranch, "~> 1.0", [hex: :ranch, optional: false]}]},
"cowlib": {:hex, :cowlib, "1.0.2", "9d769a1d062c9c3ac753096f868ca121e2730b9a377de23dec0f7e08b1df84ee", [:make], []},
"credo": {:hex, :credo, "0.6.0-rc1", "3db898270ba651aa7d8dc8d844f2827e0111526a01474ab088c7f7f677e83778", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, optional: false]}]},
"distillery": {:hex, :distillery, "1.0.0", "a866a72bf2a3a5f078f5a249017ed951acda88a760d200512f91f585d74db1ec", [:mix], []},
"earmark": {:hex, :earmark, "1.0.3", "89bdbaf2aca8bbb5c97d8b3b55c5dd0cff517ecc78d417e87f1d0982e514557b", [:mix], []},
"elixir_make": {:hex, :elixir_make, "0.4.0", "992f38fabe705bb45821a728f20914c554b276838433349d4f2341f7a687cddf", [:mix], []},
"ex_doc": {:hex, :ex_doc, "0.14.5", "c0433c8117e948404d93ca69411dd575ec6be39b47802e81ca8d91017a0cf83c", [:mix], [{:earmark, "~> 1.0", [hex: :earmark, optional: false]}]},
"exjsx": {:hex, :exjsx, "3.2.1", "1bc5bf1e4fd249104178f0885030bcd75a4526f4d2a1e976f4b428d347614f0f", [:mix], [{:jsx, "~> 2.8.0", [hex: :jsx, optional: false]}]},
"exquisite": {:hex, :exquisite, "0.1.7", "4106503e976f409246731b168cd76eb54262bd04f4facc5cba82c2f53982aaf0", [:mix], []},
"faker": {:hex, :faker, "0.7.0", "2c42deeac7be717173c78c77fb3edc749fb5d5e460e33d01fe592ae99acc2f0d", [:mix], []},
"gen_mqtt": {:hex, :gen_mqtt, "0.3.1", "6ce6af7c2bcb125d5b4125c67c5ab1f29bcec2638236509bcc6abf510a6661ed", [:mix], [{:vmq_commons, "1.0.0", [hex: :vmq_commons, optional: false]}]},
"gen_stage": {:hex, :gen_stage, "0.10.0", "ce1eb93a3f9708f2e215f70b3d3c7f55dea4a4ed7e9615195e28d543c9086656", [:mix], []},
"gettext": {:hex, :gettext, "0.13.0", "daafbddc5cda12738bb93b01d84105fe75b916a302f1c50ab9fb066b95ec9db4", [:mix], []},
"hackney": {:hex, :hackney, "1.6.5", "8c025ee397ac94a184b0743c73b33b96465e85f90a02e210e86df6cbafaa5065", [:rebar3], [{:certifi, "0.7.0", [hex: :certifi, optional: false]}, {:idna, "1.2.0", [hex: :idna, optional: false]}, {:metrics, "1.0.1", [hex: :metrics, optional: false]}, {:mimerl, "1.0.2", [hex: :mimerl, optional: false]}, {:ssl_verify_fun, "1.1.1", [hex: :ssl_verify_fun, optional: false]}]},
"httpotion": {:hex, :httpotion, "3.0.2", "525b9bfeb592c914a61a8ee31fdde3871e1861dfe805f8ee5f711f9f11a93483", [:mix], [{:ibrowse, "~> 4.2", [hex: :ibrowse, optional: false]}]},
"ibrowse": {:hex, :ibrowse, "4.2.2", "b32b5bafcc77b7277eff030ed32e1acc3f610c64e9f6aea19822abcadf681b4b", [:rebar3], []},
"idna": {:hex, :idna, "1.2.0", "ac62ee99da068f43c50dc69acf700e03a62a348360126260e87f2b54eced86b2", [:rebar3], []},
"jsx": {:hex, :jsx, "2.8.1", "1453b4eb3615acb3e2cd0a105d27e6761e2ed2e501ac0b390f5bbec497669846", [:mix, :rebar3], []},
"metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], []},
"mime": {:hex, :mime, "1.0.1", "05c393850524767d13a53627df71beeebb016205eb43bfbd92d14d24ec7a1b51", [:mix], []},
"mimerl": {:hex, :mimerl, "1.0.2", "993f9b0e084083405ed8252b99460c4f0563e41729ab42d9074fd5e52439be88", [:rebar3], []},
"mustache": {:hex, :mustache, "0.0.2", "870fbef411c47d17df06a57b8b3f69e26eb110cba0177c34e273db5d94369d9b", [:mix], []},
"nerves": {:hex, :nerves, "0.4.5", "1a82415b7b60fef675a50be85ba8c37b13713d45a47acdded64e6e28ea9309a5", [:mix], [{:distillery, "~> 1.0.0", [hex: :distillery, optional: false]}]},
"nerves_firmware": {:git, "https://github.com/nerves-project/nerves_firmware.git", "241a12694bd3bc2b4df8cbb7e0f0beaeff075b1c", []},
"nerves_firmware_http": {:git, "https://github.com/nerves-project/nerves_firmware_http.git", "cc2cb110b0587a482d454175916dc597d62c4bfa", []},
"nerves_interim_wifi": {:git, "https://github.com/nerves-project/nerves_interim_wifi.git", "32e848274571e328ebd7155848cc28d020938429", []},
"nerves_lib": {:git, "https://github.com/nerves-project/nerves_lib.git", "aac351cb3e621831a317f2d2a078257161efa551", []},
"nerves_network_interface": {:hex, :nerves_network_interface, "0.3.2", "e7450f7eccd7387ceebee6096a0646bcdc0dd4aa77077e5fa81f6767da9b77af", [:make, :mix], [{:elixir_make, "~> 0.3", [hex: :elixir_make, optional: false]}]},
"nerves_system_br": {:hex, :nerves_system_br, "0.8.2", "f9917e75b54fb3eadbd67c2123ac1406d0a7fdef24f1960e3577c759d0a6fbc7", [:mix], []},
"nerves_toolchain_arm_unknown_linux_gnueabihf": {:hex, :nerves_toolchain_arm_unknown_linux_gnueabihf, "0.8.0", "873f8d6f74413c14eda3462b397a88f043a6c3bd65f56ff57db4e2e1eaf48994", [:mix], [{:nerves, "~> 0.4.0", [hex: :nerves, optional: false]}, {:nerves_toolchain_ctng, "~> 0.8.0", [hex: :nerves_toolchain_ctng, optional: false]}]},
"nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "0.8.0", "6dff7ed51e1711c5f4da3d559bc528a8265e3dd950dda95f4d6832aed9dbe320", [:mix], []},
"nerves_uart": {:hex, :nerves_uart, "0.1.1", "32e6186b1a1b1d744631126df0b6c4049ddde5b04bc0303de29ab86a2edf60a2", [:make, :mix], [{:elixir_make, "~> 0.3", [hex: :elixir_make, optional: false]}]},
"nerves_wpa_supplicant": {:hex, :nerves_wpa_supplicant, "0.2.2", "da829baec94a8afa7da3a6beaaf1725b9ca7f5f58779ba50b73568b7d37d3d98", [:make, :mix], [{:elixir_make, "~> 0.3", [hex: :elixir_make, optional: false]}]},
"plug": {:hex, :plug, "1.3.0", "6e2b01afc5db3fd011ca4a16efd9cb424528c157c30a44a0186bcc92c7b2e8f3", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1", [hex: :cowboy, optional: true]}, {:mime, "~> 1.0", [hex: :mime, optional: false]}]},
"poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], []},
"quantum": {:hex, :quantum, "1.8.1", "37c9ad0307cf47bd578507ce1ddda98746199b281e8afe91cbe44c21d56af983", [:mix], [{:calendar, "~> 0.16", [hex: :calendar, optional: false]}]},
"ranch": {:hex, :ranch, "1.2.1", "a6fb992c10f2187b46ffd17ce398ddf8a54f691b81768f9ef5f461ea7e28c762", [:make], []},
"rsa": {:hex, :rsa, "0.0.1", "a63069f88ce342ffdf8448b7cdef4b39ba7dee3c1510644a39385c7e63ba246f", [:mix], []},
"ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.1", "28a4d65b7f59893bc2c7de786dec1e1555bd742d336043fe644ae956c3497fbe", [:make, :rebar], []},
"timex": {:hex, :timex, "3.1.7", "71f9c32e13ff4860e86a314303757cc02b3ead5db6e977579a2935225ce9a666", [:mix], [{:combine, "~> 0.7", [hex: :combine, optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, optional: false]}, {:tzdata, "~> 0.1.8 or ~> 0.5", [hex: :tzdata, optional: false]}]},
"tzdata": {:hex, :tzdata, "0.5.10", "087e8dfe8c0283473115ad8ca6974b898ecb55ca5c725427a142a79593391e90", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, optional: false]}]},
"vmq_commons": {:hex, :vmq_commons, "1.0.0", "5f5005c12db33f92f40e818a3617fb148972d59adcf99298c9d3808ef3582e34", [:rebar3], []}}

23
mix.exs
View File

@ -5,34 +5,33 @@ defmodule FarmbotOs.Mixfile do
def project do
[apps_path: "apps",
elixir: "~> 1.4",
version: @version,
target: target(Mix.env),
config_path: "farmbot_config.exs",
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,
default_task: "hello",
deps: deps()]
default_task: "warning",
deps: []]
end
# Dependencies listed here are available only for this project
# and cannot be accessed from applications inside the apps folder
defp deps(), do: []
def target(:prod) do
defp target(:prod) do
blah = System.get_env("NERVES_TARGET") || "rpi3"
System.put_env("NERVES_TARGET", blah)
blah
end
def target(_), do: "development"
defp target(_), do: "development"
end
defmodule Mix.Tasks.Hello do
defmodule Mix.Tasks.Warning do
use Mix.Task
def run(_) do
File.cd "apps/farmbot"
t = File.ls!
Mix.shell.info "hello #{inspect t}"
Mix.raise(
"""
Welcome to the Farmbot Build Environment.
You probably meant to be in the "apps/farmbot" directory.
""")
end
end

View File

@ -0,0 +1,8 @@
#!/bin/bash
SYSTEM=$1
export MIX_ENV=prod
export NERVES_TARGET=$SYSTEM
echo "building system on $SYSTEM"
cd apps/farmbot
mix deps.get
mix firmware

View File

@ -0,0 +1,23 @@
#!/bin/bash
# Collects all the various images and archives for constructing a release.
SYSTEM=$1
VERSION=$2
export MIX_ENV=prod
export NERVES_TARGET=$SYSTEM
REL_DIR=release-$VERSION
mkdir -p $REL_DIR
FIRM_FILE=apps/farmbot/_images/$SYSTEM/farmbot.fw # the .fw file generated by `mix firmware`
FIRM_FILE_REL=$REL_DIR/farmbot-$SYSTEM-$VERSION.fw # where we want our formatted system
FIRM_FILE_REL_IMG=$REL_DIR/farmbot-$SYSTEM-$VERSION.img # same as the above file, but a .img file
SYSTEM_DIR=apps/NERVES_SYSTEM_$SYSTEM # the NERVES_SYSTEM build dir
SYSTEM_TAR=$SYSTEM_DIR/nerves_system_$SYSTEM.tar.gz # the archive generated by `make system`
SYSTEM_TAR_REL=$REL_DIR/farmbot.rootfs-$SYSTEM-$VERSION.tar.gz # where we want our outputted archive to be
# copy the firmware file to the release file
cp $FIRM_FILE $FIRM_FILE_REL
# build an image from the release firmware
fwup -a -d $FIRM_FILE_REL_IMG -i $FIRM_FILE_REL -t complete
# copy the rootfs archive to the release dir
cp $SYSTEM_TAR $SYSTEM_TAR_REL

View File

@ -0,0 +1,6 @@
#!/bin/bash
SYSTEM=$1
echo "building system on $SYSTEM"
cd apps/NERVES_SYSTEM_$SYSTEM
make
make system

View File

@ -0,0 +1,13 @@
#!/bin/bash
SYSTEM=$1
NERVES_SYSTEM_BR_GIT="https://github.com/nerves-project/nerves_system_br"
if [ -d "apps/NERVES_SYSTEM_$SYSTEM" ]; then
# Control will enter here if $DIRECTORY exists.
echo "NERVES_SYSTEM_$SYSTEM dir found."
else
echo "NERVES_SYSTEM_$SYSTEM dir not found."
git clone $NERVES_SYSTEM_BR_GIT apps/nerves_system_br
fi
apps/nerves_system_br/create-build.sh apps/nerves_system_$SYSTEM/nerves_defconfig apps/NERVES_SYSTEM_$SYSTEM

View File

@ -0,0 +1,5 @@
#!/bin/bash
cd apps/farmbot
export MIX_ENV=test
mix deps.get
mix test