179 lines
6.3 KiB
Elixir
179 lines
6.3 KiB
Elixir
defmodule EMQXUmbrella.MixProject do
|
|
use Mix.Project
|
|
|
|
Code.load_file("./mix_release.exs")
|
|
|
|
def project do
|
|
[
|
|
apps_path: "apps",
|
|
# app: :emqx_mix,
|
|
version: pkg_vsn(),
|
|
# start_permanent: Mix.env() == :prod,
|
|
start_permanent: false,
|
|
deps: deps(),
|
|
releases: releases()
|
|
]
|
|
end
|
|
|
|
def application() do
|
|
[
|
|
mod: {:emqx_machine_app, []},
|
|
# extra_applications: [:mnesia, :runtime_tools],
|
|
extra_applications: []
|
|
]
|
|
end
|
|
|
|
defp elixirc_paths(_), do: ["apps/emqx"]
|
|
|
|
defp deps do
|
|
[
|
|
{:jiffy, github: "emqx/jiffy", tag: "1.0.5", override: true},
|
|
{:jsx, "~> 3.1", override: true},
|
|
{:gun, github: "emqx/gun", tag: "1.3.4", override: true},
|
|
{:cuttlefish,
|
|
github: "emqx/cuttlefish",
|
|
manager: :rebar3,
|
|
system_env: [{"CUTTLEFISH_ESCRIPT", "true"}],
|
|
override: true},
|
|
{:getopt, github: "emqx/getopt", tag: "v1.0.2", override: true},
|
|
{:cowboy, github: "emqx/cowboy", tag: "2.8.2", override: true},
|
|
{:cowlib, "~> 2.8", override: true},
|
|
{:ranch, "~> 2.0", override: true},
|
|
{:poolboy, github: "emqx/poolboy", tag: "1.5.2", override: true},
|
|
{:esockd, github: "emqx/esockd", tag: "5.8.0", override: true},
|
|
{:gproc, "~> 0.9", override: true},
|
|
{:eetcd, "~> 0.3", override: true},
|
|
{:grpc, github: "emqx/grpc-erl", tag: "0.6.2", override: true},
|
|
{:pbkdf2, github: "emqx/erlang-pbkdf2", tag: "2.0.4", override: true},
|
|
{:typerefl, github: "k32/typerefl", tag: "0.8.4", manager: :rebar3, override: true},
|
|
{:gen_rpc, github: "emqx/gen_rpc", tag: "2.5.1", override: true},
|
|
{:gen_coap, github: "emqx/gen_coap", tag: "v0.3.2", override: true},
|
|
{:snabbkaffe, github: "kafka4beam/snabbkaffe", tag: "0.14.0", override: true},
|
|
{:emqx_http_lib, github: "emqx/emqx_http_lib", tag: "0.4.0", override: true},
|
|
####
|
|
{:quicer, github: "emqx/quic", tag: "0.0.9", override: true},
|
|
{:ecpool, github: "emqx/ecpool", tag: "0.5.1"},
|
|
{:ehttpc, github: "emqx/ehttpc", tag: "0.1.12"},
|
|
{:hocon, github: "emqx/hocon", tag: "0.22.0", override: true, runtime: false},
|
|
{:mria, github: "emqx/mria", tag: "0.1.4", override: true},
|
|
{:minirest, github: "emqx/minirest", tag: "1.2.7"},
|
|
{:rulesql, github: "emqx/rulesql", tag: "0.1.4"},
|
|
{:emqtt, github: "emqx/emqtt", tag: "1.4.3"},
|
|
{:esasl, github: "emqx/esasl", tag: "0.2.0"},
|
|
####
|
|
# {:emqx, path: "apps/emqx", in_umbrella: true},
|
|
# {:emqx_authz, path: "apps/emqx_authz", in_umbrella: true},
|
|
# {:emqx_conf, path: "apps/emqx_conf", in_umbrella: true},
|
|
# {:emqx_connector, path: "apps/emqx_connector", in_umbrella: true},
|
|
# {:emqx_resource, path: "apps/emqx_resource", in_umbrella: true, complile: :mix},
|
|
# {:emqx_authn, path: "apps/emqx_authn", in_umbrella: true},
|
|
# {:emqx_plugin_libs, path: "apps/emqx_plugin_libs", in_umbrella: true},
|
|
# {:emqx_bridge, path: "apps/emqx_bridge", in_umbrella: true},
|
|
# {:emqx_retainer, path: "apps/emqx_retainer", in_umbrella: true},
|
|
# {:emqx_statsd, path: "apps/emqx_statsd", in_umbrella: true},
|
|
# {:emqx_auto_subscribe, path: "apps/emqx_auto_subscribe", in_umbrella: true},
|
|
# {:emqx_machine, path: "apps/emqx_machine", in_umbrella: true},
|
|
# {:emqx_modules, path: "apps/emqx_modules", in_umbrella: true},
|
|
# {:emqx_dashboard, path: "apps/emqx_dashboard", in_umbrella: true},
|
|
# {:emqx_gateway, path: "apps/emqx_gateway", in_umbrella: true},
|
|
# {:emqx_prometheus, path: "apps/emqx_prometheus", in_umbrella: true},
|
|
# {:emqx_rule_engine, path: "apps/emqx_rule_engine", in_umbrella: true},
|
|
# {:emqx_exhook, path: "apps/emqx_exhook", in_umbrella: true},
|
|
# {:emqx_psk, path: "apps/emqx_psk", in_umbrella: true},
|
|
# {:emqx_limiter, path: "apps/emqx_limiter", in_umbrella: true},
|
|
# # undef minirest error without this one...
|
|
# {:emqx_management, path: "apps/emqx_management", in_umbrella: true},
|
|
] ++ ((enable_bcrypt() && [{:bcrypt, github: "emqx/erlang-bcrypt", tag: "0.6.0"}]) || [])
|
|
end
|
|
|
|
defp releases do
|
|
[
|
|
# emqx: fn ->
|
|
# [
|
|
# applications: EmqxReleaseHelper.applications(),
|
|
# steps: [:assemble, &EmqxReleaseHelper.run/1]
|
|
# ]
|
|
# end
|
|
emqx: [
|
|
applications: [
|
|
logger: :permanent,
|
|
# lc: :load,
|
|
esasl: :load,
|
|
crypto: :permanent,
|
|
public_key: :permanent,
|
|
asn1: :permanent,
|
|
syntax_tools: :permanent,
|
|
ssl: :permanent,
|
|
os_mon: :permanent,
|
|
inets: :permanent,
|
|
compiler: :permanent,
|
|
runtime_tools: :permanent,
|
|
# emqx_conf: :permanent,
|
|
# hocon: :load,
|
|
emqx: :load,
|
|
emqx_conf: :load, # as per rebar.config.erl
|
|
emqx_machine: :permanent,
|
|
mria: :load,
|
|
mnesia: :load,
|
|
ekka: :load,
|
|
emqx_plugin_libs: :load,
|
|
emqx_http_lib: :permanent,
|
|
emqx_resource: :permanent,
|
|
emqx_connector: :permanent,
|
|
emqx_authn: :permanent,
|
|
emqx_authz: :permanent,
|
|
emqx_auto_subscribe: :permanent,
|
|
emqx_gateway: :permanent,
|
|
emqx_exhook: :permanent,
|
|
emqx_bridge: :permanent,
|
|
emqx_rule_engine: :permanent,
|
|
emqx_modules: :permanent,
|
|
emqx_management: :permanent,
|
|
emqx_dashboard: :permanent,
|
|
emqx_statsd: :permanent,
|
|
emqx_retainer: :permanent,
|
|
# emqx_retainer: :none,
|
|
emqx_prometheus: :permanent,
|
|
emqx_psk: :permanent,
|
|
# emqx_psk: :none,
|
|
emqx_limiter: :permanent,
|
|
# emqx_limiter: :none,
|
|
observer: :load,
|
|
# emqx_mix: :none,
|
|
],
|
|
]
|
|
]
|
|
end
|
|
|
|
def enable_bcrypt do
|
|
not match?({:win_32, _}, :os.type())
|
|
end
|
|
|
|
def project_path do
|
|
Path.expand("..", __ENV__.file)
|
|
end
|
|
|
|
def pkg_vsn do
|
|
project_path()
|
|
|> Path.join("pkg-vsn.sh")
|
|
|> System.cmd([])
|
|
|> elem(0)
|
|
|> String.trim()
|
|
|> String.split("-")
|
|
|> Enum.reverse()
|
|
|> tl()
|
|
|> Enum.reverse()
|
|
|> fix_vsn()
|
|
|> Enum.join("-")
|
|
end
|
|
|
|
# FIXME: remove hack
|
|
defp fix_vsn([vsn | extras]) do
|
|
if Version.parse(vsn) == :error do
|
|
[vsn <> ".0" | extras]
|
|
else
|
|
[vsn | extras]
|
|
end
|
|
end
|
|
end
|