defmodule Arke.New.MixProject do use Mix.Project if Mix.env() != :prod do for path <- :code.get_path(), Regex.match?(~r/arke_new-[\w\.\-]+\/ebin$/, List.to_string(path)) do Code.delete_path(path) end end @version "0.1.13" @scm_url "https://github.com/arkemishub/arke-new" @site_url "https://arkehub.com" # If the elixir requirement is updated, we need to update: # # 1. all mix.exs generated by the installer # 2. guides/introduction/installation.md # 3. guides/deployment/releases.md # 4. test/test_helper.exs at the root # 5. installer/lib/mix/tasks/arke.new.ex # @elixir_requirement "~> 1.16" def project do [ app: :arke_new, start_permanent: Mix.env() == :prod, version: @version, elixir: @elixir_requirement, deps: deps(), package: package(), preferred_cli_env: [docs: :docs], source_url: @scm_url, docs: docs(), homepage_url: @site_url, description: description(), versioning: versioning() ] end defp description() do """ Arke project generator. Provides a `mix arke.new` task to bootstrap a new Elixir application with Arke dependencies. """ end defp versioning do [ tag_prefix: "v", commit_msg: "v%s", annotation: "tag release-%s created with mix_version", annotate: true ] end def application do [ extra_applications: [:eex, :crypto] ] end def deps do [ {:ex_doc, "~> 0.28", only: :dev, runtime: false} ] end defp docs do [ source_url_pattern: "#{@scm_url}/blob/v#{@version}/arke_new/%{path}#L%{line}" ] end defp package() do [ # This option is only needed when you don't want to use the OTP application name name: "arke_new", # These are the default files included in the package licenses: ["Apache-2.0"], links: %{ "Website" => @site_url, "Github" => @scm_url }, files: ~w(lib templates mix.exs README.md) ] end end