mix.exs (1801B)
1 defmodule MakeupElixir.Mixfile do 2 use Mix.Project 3 4 @version "0.16.0" 5 @url "https://github.com/elixir-makeup/makeup_elixir" 6 7 def project do 8 [ 9 app: :makeup_elixir, 10 version: @version, 11 elixir: "~> 1.6", 12 start_permanent: Mix.env() == :prod, 13 deps: deps(), 14 package: package(), 15 description: description(), 16 aliases: aliases() 17 ] 18 end 19 20 defp description do 21 """ 22 Elixir lexer for the Makeup syntax highlighter. 23 """ 24 end 25 26 defp package do 27 [ 28 name: :makeup_elixir, 29 licenses: ["BSD"], 30 maintainers: ["Tiago Barroso <tmbb@campus.ul.pt>"], 31 links: %{"GitHub" => @url} 32 ] 33 end 34 35 # Run "mix help compile.app" to learn about applications. 36 def application do 37 [ 38 extra_applications: [], 39 mod: {Makeup.Lexers.ElixirLexer.Application, []} 40 ] 41 end 42 43 # Run "mix help deps" to learn about dependencies. 44 defp deps do 45 [ 46 {:makeup, "~> 1.0"}, 47 {:nimble_parsec, "~> 1.2.3"}, 48 # Generate unicode character lists 49 {:unicode_set, "~> 1.1.0", only: :dev}, 50 # Benchmarking utilities 51 {:benchee, "~> 1.0", only: :dev}, 52 {:benchee_markdown, "~> 0.2", only: :dev} 53 ] 54 end 55 56 defp aliases do 57 [ 58 docs: &build_docs/1, 59 publish: "run scripts/publish.exs" 60 ] 61 end 62 63 defp build_docs(_) do 64 Mix.Task.run("compile") 65 ex_doc = Path.join(Mix.path_for(:escripts), "ex_doc") 66 67 unless File.exists?(ex_doc) do 68 raise "cannot build docs because escript for ex_doc is not installed" 69 end 70 71 args = ["MakeupElixir", @version, Mix.Project.compile_path()] 72 opts = ~w[--main Makeup.Lexers.ElixirLexer --source-ref v#{@version} --source-url #{@url}] 73 System.cmd(ex_doc, args ++ opts) 74 Mix.shell().info("Docs built successfully") 75 end 76 end