101 lines
2.8 KiB
Elixir
101 lines
2.8 KiB
Elixir
|
defmodule OpentelemetryProcessPropagator.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.10",
|
||
|
start_permanent: Mix.env() == :prod,
|
||
|
deps: deps(Keyword.fetch!(config, :deps)),
|
||
|
name: "Opentelemetry Process Propagator",
|
||
|
source_url:
|
||
|
"https://github.com/open-telemetry/opentelemetry-erlang-contrib/tree/main/propagators/opentelemetry_process_propagator",
|
||
|
docs: [
|
||
|
markdown_processor: ExDoc.Markdown.Earmark,
|
||
|
main: "OpentelemetryTelemetry",
|
||
|
# logo: "path/to/logo.png",
|
||
|
# erlang_docs()
|
||
|
extras: []
|
||
|
],
|
||
|
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
|
||
|
[
|
||
|
extra_applications: [:logger]
|
||
|
]
|
||
|
end
|
||
|
|
||
|
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([
|
||
|
{:dialyxir, "~> 1.1", only: [:dev, :test], runtime: false},
|
||
|
{:ex_doc, "~> 0.26.0", only: :dev, runtime: false},
|
||
|
{:opentelemetry, "~> 1.0", only: [:dev, :test]},
|
||
|
{:opentelemetry_exporter, "~> 1.0", only: [:dev, :test]}
|
||
|
])
|
||
|
end
|
||
|
|
||
|
defp package() do
|
||
|
[
|
||
|
description: "Tools for opentelemetry context propagation across process boundaries",
|
||
|
build_tools: ["rebar3", "mix"],
|
||
|
files: ~w(lib mix.exs README.md LICENSE rebar.config rebar.lock VERSION src),
|
||
|
licenses: ["Apache-2.0"],
|
||
|
links: %{
|
||
|
"GitHub" =>
|
||
|
"https://github.com/open-telemetry/opentelemetry-erlang-contrib/tree/main/propagators/opentelemetry_process_propagator",
|
||
|
"OpenTelemetry Erlang" => "https://github.com/open-telemetry/opentelemetry-erlang",
|
||
|
"OpenTelemetry Erlang Contrib" => "https://github.com/open-telemetry/opentelemetry-erlang-contrib",
|
||
|
"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_process_propagator.app.src')
|
||
|
|
||
|
{name, desc}
|
||
|
end
|
||
|
end
|