diff --git a/.credo.exs b/apps/amethyst/.credo.exs similarity index 100% rename from .credo.exs rename to apps/amethyst/.credo.exs diff --git a/.envrc b/apps/amethyst/.envrc similarity index 100% rename from .envrc rename to apps/amethyst/.envrc diff --git a/lib/amethyst.ex b/apps/amethyst/lib/amethyst.ex similarity index 100% rename from lib/amethyst.ex rename to apps/amethyst/lib/amethyst.ex diff --git a/lib/apps/tcp_listener.ex b/apps/amethyst/lib/apps/tcp_listener.ex similarity index 100% rename from lib/apps/tcp_listener.ex rename to apps/amethyst/lib/apps/tcp_listener.ex diff --git a/lib/data.ex b/apps/amethyst/lib/data.ex similarity index 100% rename from lib/data.ex rename to apps/amethyst/lib/data.ex diff --git a/lib/encryption.ex b/apps/amethyst/lib/encryption.ex similarity index 100% rename from lib/encryption.ex rename to apps/amethyst/lib/encryption.ex diff --git a/lib/nbt.ex b/apps/amethyst/lib/nbt.ex similarity index 100% rename from lib/nbt.ex rename to apps/amethyst/lib/nbt.ex diff --git a/lib/servers/configuration.ex b/apps/amethyst/lib/servers/configuration.ex similarity index 100% rename from lib/servers/configuration.ex rename to apps/amethyst/lib/servers/configuration.ex diff --git a/lib/servers/generic.ex b/apps/amethyst/lib/servers/generic.ex similarity index 100% rename from lib/servers/generic.ex rename to apps/amethyst/lib/servers/generic.ex diff --git a/lib/servers/handhsake.ex b/apps/amethyst/lib/servers/handhsake.ex similarity index 100% rename from lib/servers/handhsake.ex rename to apps/amethyst/lib/servers/handhsake.ex diff --git a/lib/servers/login.ex b/apps/amethyst/lib/servers/login.ex similarity index 100% rename from lib/servers/login.ex rename to apps/amethyst/lib/servers/login.ex diff --git a/lib/servers/play.ex b/apps/amethyst/lib/servers/play.ex similarity index 100% rename from lib/servers/play.ex rename to apps/amethyst/lib/servers/play.ex diff --git a/lib/servers/status.ex b/apps/amethyst/lib/servers/status.ex similarity index 100% rename from lib/servers/status.ex rename to apps/amethyst/lib/servers/status.ex diff --git a/apps/amethyst/mix.exs b/apps/amethyst/mix.exs new file mode 100644 index 0000000..7dd58d7 --- /dev/null +++ b/apps/amethyst/mix.exs @@ -0,0 +1,44 @@ +defmodule Amethyst.MixProject do + use Mix.Project + + def project do + [ + app: :amethyst, + version: "0.1.0", + elixir: "~> 1.17", + + build_path: "../../_build", + config_path: "../../config/config.exs", + deps_path: "../../deps", + lockfile: "../../mix.lock", + + + start_permanent: Mix.env() == :prod, + deps: deps(), + + name: "Amethyst", + source_url: "https://git.colon-three.com/kodi/amethyst", + docs: [ + main: "readme", + extras: ["../README.md", "../LICENSE.md"] + ] + ] + end + + # Run "mix help compile.app" to learn about applications. + def application do + [ + extra_applications: [:logger, :public_key], + mod: {Amethyst.Application, []} + ] + end + + # Run "mix help deps" to learn about dependencies. + defp deps do + [ + {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, + {:uuid, "~> 1.1"}, + {:ex_doc, "~> 0.22", only: :dev, runtime: false} + ] + end +end diff --git a/test/data_test.exs b/apps/amethyst/test/data_test.exs similarity index 100% rename from test/data_test.exs rename to apps/amethyst/test/data_test.exs diff --git a/test/test_helper.exs b/apps/amethyst/test/test_helper.exs similarity index 100% rename from test/test_helper.exs rename to apps/amethyst/test/test_helper.exs diff --git a/config/config.exs b/config/config.exs new file mode 100644 index 0000000..ab23e80 --- /dev/null +++ b/config/config.exs @@ -0,0 +1,18 @@ +# This file is responsible for configuring your umbrella +# and **all applications** and their dependencies with the +# help of the Config module. +# +# Note that all applications in your umbrella share the +# same configuration and dependencies, which is why they +# all use the same configuration file. If you want different +# configurations or dependencies per app, it is best to +# move said applications out of the umbrella. +import Config + +# Sample configuration: +# +# config :logger, :console, +# level: :info, +# format: "$date $time [$level] $metadata$message\n", +# metadata: [:user_id] +# diff --git a/mix.exs b/mix.exs index 0aeb80d..961b93c 100644 --- a/mix.exs +++ b/mix.exs @@ -1,37 +1,22 @@ -defmodule Amethyst.MixProject do +defmodule AmethystUmbrella.MixProject do use Mix.Project def project do [ - app: :amethyst, + apps_path: "apps", version: "0.1.0", elixir: "~> 1.17", start_permanent: Mix.env() == :prod, - deps: deps(), - - name: "Amethyst", - source_url: "https://git.colon-three.com/kodi/amethyst", - docs: [ - main: "readme", - extras: ["README.md", "LICENSE.md"] - ] + deps: deps() ] end - # Run "mix help compile.app" to learn about applications. - def application do - [ - extra_applications: [:logger, :public_key], - mod: {Amethyst.Application, []} - ] - end - - # Run "mix help deps" to learn about dependencies. + # Dependencies listed here are available only for this + # project and cannot be accessed from applications inside + # the apps folder. + # + # Run "mix help deps" for examples and options. defp deps do - [ - {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, - {:uuid, "~> 1.1"}, - {:ex_doc, "~> 0.22", only: :dev, runtime: false} - ] + [] end end diff --git a/mix.lock b/mix.lock index cf7b270..d02a4db 100644 --- a/mix.lock +++ b/mix.lock @@ -3,8 +3,8 @@ "credo": {:hex, :credo, "1.7.7", "771445037228f763f9b2afd612b6aa2fd8e28432a95dbbc60d8e03ce71ba4446", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "8bc87496c9aaacdc3f90f01b7b0582467b69b4bd2441fe8aae3109d843cc2f2e"}, "earmark_parser": {:hex, :earmark_parser, "1.4.41", "ab34711c9dc6212dda44fcd20ecb87ac3f3fce6f0ca2f28d4a00e4154f8cd599", [:mix], [], "hexpm", "a81a04c7e34b6617c2792e291b5a2e57ab316365c2644ddc553bb9ed863ebefa"}, "ex_doc": {:hex, :ex_doc, "0.34.2", "13eedf3844ccdce25cfd837b99bea9ad92c4e511233199440488d217c92571e8", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "5ce5f16b41208a50106afed3de6a2ed34f4acfd65715b82a0b84b49d995f95c1"}, - "file_system": {:hex, :file_system, "1.0.0", "b689cc7dcee665f774de94b5a832e578bd7963c8e637ef940cd44327db7de2cd", [:mix], [], "hexpm", "6752092d66aec5a10e662aefeed8ddb9531d79db0bc145bb8c40325ca1d8536d"}, - "jason": {:hex, :jason, "1.4.3", "d3f984eeb96fe53b85d20e0b049f03e57d075b5acda3ac8d465c969a2536c17b", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "9a90e868927f7c777689baa16d86f4d0e086d968db5c05d917ccff6d443e58a3"}, + "file_system": {:hex, :file_system, "1.0.1", "79e8ceaddb0416f8b8cd02a0127bdbababe7bf4a23d2a395b983c1f8b3f73edd", [:mix], [], "hexpm", "4414d1f38863ddf9120720cd976fce5bdde8e91d8283353f0e31850fa89feb9e"}, + "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, "makeup": {:hex, :makeup, "1.1.2", "9ba8837913bdf757787e71c1581c21f9d2455f4dd04cfca785c70bbfff1a76a3", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cce1566b81fbcbd21eca8ffe808f33b221f9eee2cbc7a1706fc3da9ff18e6cac"}, "makeup_elixir": {:hex, :makeup_elixir, "0.16.2", "627e84b8e8bf22e60a2579dad15067c755531fea049ae26ef1020cad58fe9578", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "41193978704763f6bbe6cc2758b84909e62984c7752b3784bd3c218bb341706b"}, "makeup_erlang": {:hex, :makeup_erlang, "1.0.1", "c7f58c120b2b5aa5fd80d540a89fdf866ed42f1f3994e4fe189abebeab610839", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "8a89a1eeccc2d798d6ea15496a6e4870b75e014d1af514b1b71fa33134f57814"}, diff --git a/mix.nix b/mix.nix index 610a7dc..41e3c40 100644 --- a/mix.nix +++ b/mix.nix @@ -34,14 +34,40 @@ let beamDeps = [ bunt file_system jason ]; }; + earmark_parser = buildMix rec { + name = "earmark_parser"; + version = "1.4.41"; + + src = fetchHex { + pkg = "earmark_parser"; + version = "${version}"; + sha256 = "a81a04c7e34b6617c2792e291b5a2e57ab316365c2644ddc553bb9ed863ebefa"; + }; + + beamDeps = []; + }; + + ex_doc = buildMix rec { + name = "ex_doc"; + version = "0.34.2"; + + src = fetchHex { + pkg = "ex_doc"; + version = "${version}"; + sha256 = "5ce5f16b41208a50106afed3de6a2ed34f4acfd65715b82a0b84b49d995f95c1"; + }; + + beamDeps = [ earmark_parser makeup_elixir makeup_erlang ]; + }; + file_system = buildMix rec { name = "file_system"; - version = "1.0.0"; + version = "1.0.1"; src = fetchHex { pkg = "file_system"; version = "${version}"; - sha256 = "6752092d66aec5a10e662aefeed8ddb9531d79db0bc145bb8c40325ca1d8536d"; + sha256 = "4414d1f38863ddf9120720cd976fce5bdde8e91d8283353f0e31850fa89feb9e"; }; beamDeps = []; @@ -49,12 +75,64 @@ let jason = buildMix rec { name = "jason"; - version = "1.4.3"; + version = "1.4.4"; src = fetchHex { pkg = "jason"; version = "${version}"; - sha256 = "9a90e868927f7c777689baa16d86f4d0e086d968db5c05d917ccff6d443e58a3"; + sha256 = "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"; + }; + + beamDeps = []; + }; + + makeup = buildMix rec { + name = "makeup"; + version = "1.1.2"; + + src = fetchHex { + pkg = "makeup"; + version = "${version}"; + sha256 = "cce1566b81fbcbd21eca8ffe808f33b221f9eee2cbc7a1706fc3da9ff18e6cac"; + }; + + beamDeps = [ nimble_parsec ]; + }; + + makeup_elixir = buildMix rec { + name = "makeup_elixir"; + version = "0.16.2"; + + src = fetchHex { + pkg = "makeup_elixir"; + version = "${version}"; + sha256 = "41193978704763f6bbe6cc2758b84909e62984c7752b3784bd3c218bb341706b"; + }; + + beamDeps = [ makeup nimble_parsec ]; + }; + + makeup_erlang = buildMix rec { + name = "makeup_erlang"; + version = "1.0.1"; + + src = fetchHex { + pkg = "makeup_erlang"; + version = "${version}"; + sha256 = "8a89a1eeccc2d798d6ea15496a6e4870b75e014d1af514b1b71fa33134f57814"; + }; + + beamDeps = [ makeup ]; + }; + + nimble_parsec = buildMix rec { + name = "nimble_parsec"; + version = "1.4.0"; + + src = fetchHex { + pkg = "nimble_parsec"; + version = "${version}"; + sha256 = "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"; }; beamDeps = [];