This repository has been archived by the owner on Oct 26, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
/
mix.exs
90 lines (77 loc) · 2.3 KB
/
mix.exs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
defmodule OpenTelemetry.MixProject do
use Mix.Project
def project do
{app, desc} = load_app()
config = load_config()
[
app: app,
version: version(Keyword.fetch!(desc, :vsn)),
description: to_string(Keyword.fetch!(desc, :description)),
elixir: "~> 1.8",
start_permanent: Mix.env() == :prod,
# We should never have dependencies
deps: deps(Keyword.fetch!(config, :deps)),
# Docs
name: "OpenTelemetry API",
# source_url: "https://github.com/USER/PROJECT",
# homepage_url: "http://YOUR_PROJECT_HOMEPAGE",
docs: [
markdown_processor: ExDoc.Markdown.Cmark,
main: "OpenTelemetry",
# logo: "path/to/logo.png",
extras: erlang_docs()
],
aliases: [
# when build docs first build edocs with rebar3
docs: ["cmd rebar3 edoc", "docs"]
],
package: package()
]
end
defp version(version) when is_list(version) do
List.to_string(version)
end
defp version({:file, path}) do
path
|> File.read!()
|> String.trim()
end
# Run "mix help compile.app" to learn about applications.
def application, do: []
defp deps(rebar) do
rebar
|> Enum.map(fn
{dep, version} -> {dep, to_string(version)}
dep when is_atom(dep) -> {dep, ">= 0.0.0"}
end)
|> Enum.concat([
{:cmark, "~> 0.7", only: :dev, runtime: false},
{:ex_doc, "~> 0.21", only: :dev, runtime: false}
])
end
defp package() do
[
description: "OpenTelemetry API",
build_tools: ["rebar3", "mix"],
files: ~w(lib mix.exs README.md LICENSE CODEOWNERS rebar.config rebar.lock VERSION include src),
licenses: ["Apache-2.0"],
links: %{"GitHub" => "https://github.com/open-telemetry/opentelemetry-erlang-api",
"OpenTelemetry.io" => "https://opentelemetry.io"}
]
end
def erlang_docs() do
files =
for file <- Path.wildcard("edoc/*.md"),
file != "edoc/README.md",
do: {String.to_atom(file), [title: Path.basename(file, ".md")]}
[{:"README.md", [title: "Overview"]} | files]
end
defp load_config do
{:ok, config} = :file.consult('rebar.config')
config
end
defp load_app do
{:ok, [{:application, name, desc}]} = :file.consult('src/opentelemetry_api.app.src')
{name, desc}
end
end