-
Notifications
You must be signed in to change notification settings - Fork 0
/
mix.exs
101 lines (86 loc) · 2.56 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
91
92
93
94
95
96
97
98
99
100
101
defmodule EarmarkParser.MixProject do
use Mix.Project
@version "1.4.33"
@url "https://github.com/RobertDober/earmark_parser"
@deps [
{:earmark_ast_dsl, "~> 0.3.7", only: [:test]},
{:excoveralls, "~> 0.14.4", only: [:test]},
{:extractly, "~> 0.5.3", only: [:dev]},
{:floki, "~> 0.32", only: [:dev, :test]}
]
@description """
Earmark AST the parser and AST Generator for
Dave Thomas' Earmark.
The parser generates
an Abstract Syntax Tree from Markdown.
The original Earmark will still provide the HTML Transformation and
the CLI, however its Scanner, Parser and AST Renderer have been
extracted into this library.
"""
############################################################
def project do
[
app: :earmark_parser,
version: @version,
elixir: "~> 1.11",
elixirc_paths: elixirc_paths(Mix.env()),
deps: @deps,
description: @description,
package: package(),
preferred_cli_env: [
coveralls: :test,
"coveralls.detail": :test,
"coveralls.post": :test,
"coveralls.html": :test
],
test_coverage: [tool: ExCoveralls],
aliases: [docs: &build_docs/1]
]
end
defp package do
[
files: [
"lib",
"src/*.xrl",
"src/*.yrl",
"mix.exs",
"README.md",
"RELEASE.md",
"LICENSE"
],
maintainers: [
"Robert Dober <robert.dober@gmail.com>"
],
licenses: [
"Apache-2.0"
],
links: %{
"Changelog" => "#{@url}/blob/master/RELEASE.md",
"GitHub" => @url
}
]
end
defp elixirc_paths(:test), do: ["lib", "test/support", "dev"]
defp elixirc_paths(:dev), do: ["lib", "bench", "dev"]
defp elixirc_paths(_), do: ["lib"]
@prerequisites """
run `mix escript.install hex ex_doc` and adjust `PATH` accordingly
"""
@module "EarmarkParser"
defp build_docs(_) do
Mix.Task.run("compile")
ex_doc = Path.join(Mix.path_for(:escripts), "ex_doc")
Mix.shell().info("Using escript: #{ex_doc} to build the docs")
unless File.exists?(ex_doc) do
raise "cannot build docs because escript for ex_doc is not installed, make sure to \n#{
@prerequisites
}"
end
args = [@module, @version, Mix.Project.compile_path()]
opts = ~w[--main #{@module} --source-ref v#{@version} --source-url #{@url}]
Mix.shell().info("Running: #{ex_doc} #{inspect(args ++ opts)}")
System.cmd(ex_doc, args ++ opts)
Mix.shell().info("Docs built successfully")
end
end
# SPDX-License-Identifier: Apache-2.0