defmodule MakeupElixir.Mixfile do use Mix.Project @version "0.9.0" @url "https://github.com/tmbb/makeup_elixir" def project do [ app: :makeup_elixir, version: @version, elixir: "~> 1.4", start_permanent: Mix.env == :prod, deps: deps(), # Package package: package(), description: description(), aliases: [docs: &build_docs/1], docs: [ main: "readme", assets: "assets", extras: [ "README.md" ] ] ] end defp description do """ Elixir lexer for the Makeup syntax highlighter. """ end defp package do [ name: :makeup_elixir, licenses: ["BSD"], maintainers: ["Tiago Barroso "], links: %{"GitHub" => @url} ] end # Run "mix help compile.app" to learn about applications. def application do [ extra_applications: [:logger] ] end # Run "mix help deps" to learn about dependencies. defp deps do [ {:makeup, "~> 0.5.5"}, {:benchee, "~> 0.13", only: [:dev, :test]} ] end defp build_docs(_) do Mix.Task.run("compile") ex_doc = Path.join(Mix.Local.path_for(:escript), "ex_doc") unless File.exists?(ex_doc) do raise "cannot build docs because escript for ex_doc is not installed" end args = ["MakeupElixir", @version, Mix.Project.compile_path()] opts = ~w[--main Makeup.Lexers.ElixirLexer --source-ref v#{@version} --source-url #{@url}] System.cmd(ex_doc, args ++ opts) Mix.shell().info("Docs built successfully") end end