Current section
Files
Jump to
Current section
Files
surface_catalogue
mix.exs
mix.exs
if File.exists?("blend/premix.exs") do
Code.compile_file("blend/premix.exs")
else
defmodule Blend.Premix do
def patch_project(project), do: project
def patch_deps(deps), do: deps
end
end
defmodule Surface.Catalogue.MixProject do
use Mix.Project
@version "0.6.3"
@source_url "https://github.com/surface-ui/surface_catalogue"
@homepage_url "https://surface-ui.org"
def project do
[
app: :surface_catalogue,
version: @version,
elixir: "~> 1.13",
description: "An initial prototype of the Surface Catalogue",
start_permanent: Mix.env() == :prod,
elixirc_paths: elixirc_paths(Mix.env()),
compilers: Mix.compilers() ++ [:surface],
aliases: aliases(),
xref: [exclude: Surface.Catalogue.Playground],
deps: deps(),
preferred_cli_env: [docs: :docs],
# Docs
name: "Surface Catalogue",
source_url: @source_url,
homepage_url: @homepage_url,
docs: docs(),
package: package()
]
|> Blend.Premix.patch_project()
end
# Run "mix help compile.app" to learn about applications.
def application do
[
mod: {Surface.Catalogue.Application, []},
extra_applications: [:logger]
]
end
defp elixirc_paths(:dev), do: ["lib"] ++ catalogues()
defp elixirc_paths(:test), do: ["lib", "test/support"] ++ catalogues()
defp elixirc_paths(_), do: ["lib"]
def catalogues do
["priv/catalogue"] ++ surface_catalogue_path()
end
defp surface_catalogue_path() do
deps()
|> List.keyfind!(:surface, 0)
|> surface_dep_opts()
|> surface_catalogue_path()
end
defp surface_catalogue_path(nil), do: []
defp surface_catalogue_path(opts) do
path =
case opts[:path] do
nil -> Mix.Project.deps_path() |> Path.relative() |> Path.join("/surface")
surface_dep_path -> Path.expand(surface_dep_path)
end
["#{path}/priv/catalogue"]
end
defp surface_dep_opts({:surface, opts}) when is_list(opts), do: opts
defp surface_dep_opts({:surface, _req, opts}) when is_list(opts), do: opts
defp surface_dep_opts({:surface, _req}), do: []
defp surface_dep_opts(_), do: nil
defp aliases do
[
dev: "run --no-halt dev.exs"
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:surface, "~> 0.10"},
{:earmark, "~> 1.4.21"},
{:makeup_elixir, "~> 0.16.0"},
{:html_entities, "~> 0.4"},
{:jason, "~> 1.0", only: :dev},
{:plug_cowboy, "~> 2.3", only: :dev},
{:esbuild, "~> 0.2", only: :dev},
{:blend, "~> 0.4.0", only: :dev},
{:floki, ">= 0.35.3", only: :test},
{:phoenix_live_reload, "~> 1.2", optional: true, only: [:prod, :dev]},
{:ex_doc, ">= 0.31.1", only: :docs}
]
|> Blend.Premix.patch_deps()
end
defp docs do
[
main: "readme",
source_ref: "v#{@version}",
nest_modules_by_prefix: [Surface.Catalogue],
extras: [
"README.md",
"CHANGELOG.md",
"LICENSE.md"
]
]
end
defp package do
%{
licenses: ["MIT"],
links: %{
Website: @homepage_url,
Changelog: "https://hexdocs.pm/surface_catalogue/changelog.html",
GitHub: @source_url
},
files: ~w(
README.md
CHANGELOG.md
LICENSE.md
mix.exs
lib
assets
priv/catalogue
)
}
end
end