%% -*- mode: erlang;erlang-indent-level: 4;indent-tabs-mode: nil -*-

{erl_opts, [debug_info]}.
{src_dirs, ["src", "src/controllers"]}.
{erlydtl_opts, [{doc_root, "src/views"},
                {recursive, true},
               {libraries, [
                           {nova_erlydtl_inventory, nova_erlydtl_inventory}
                           ]},
               {default_libraries, [nova_erlydtl_inventory]}
               ]}.

{deps, [
        {cowboy, "2.13.0"},
        {erlydtl, "0.14.0"},
        {jhn_stdlib, "5.4.0"},
        {routing_tree, "1.0.11"},
        {thoas, "1.2.1"}
       ]}.

{profiles, [
            {prod, [{relx, [{dev_mode, false}, {include_erts, true}]}]},
            {test, [
                {erl_opts, [debug_info, nowarn_export_all]},
                {deps, [{proper, "1.4.0"}, {meck, "0.9.2"}]}
            ]}
           ]}.

{dialyzer, [
            {warnings, [
                        unknown
                       ]},
            {plt_apps, all_deps},
            {plt_extra_apps, [jhn_stdlib,
                              edoc,
                              xmerl,
                              cowboy,
                              erlydtl,
                              cowlib,
                              routing_tree]}
           ]}.

{xref_checks,[
              undefined_function_calls,
              undefined_functions,
              locals_not_used,
              deprecated_function_calls,
              deprecated_functions
             ]}.


{plugins, [rebar3_ex_doc,
           {rebar3_erlydtl_plugin, ".*",
            {git, "https://github.com/erlydtl/rebar3_erlydtl_plugin.git", {ref, "f1ed9486"}}},
           rebar3_mutate
          ]}.


{provider_hooks, [
                  {pre, [{compile, {erlydtl, compile}}]}
                 ]}.

{ex_doc, [{proglang, erlang},
          {main, <<"nova">>},
          {assets, #{<<"guides/assets">> => <<"guides/assets">>}},
          {extras, [<<"guides/quick-start.md">>,
                    <<"guides/configuration.md">>,
                    <<"guides/routing.md">>,
                    <<"guides/controllers.md">>,
                    <<"guides/views.md">>,
                    <<"guides/handlers.md">>,
                    <<"guides/plugins.md">>,
                    <<"guides/pubsub.md">>,
                    <<"guides/graceful-shutdown.md">>,
                    <<"guides/building-releases.md">>,
                    <<"guides/books-and-links.md">>,
                    <<"guides/rebar3_nova.md">>]},
          {source_url, <<"https://github.com/novaframework/nova">>},
          {homepage_url, <<"https://novaframework.org">>},
          {skip_undefined_reference_warnings_on, [<<"guides/configuration.md">>,
                                                  <<"guides/controllers.md">>,
                                                  <<"guides/routing.md">>]}
         ]
}.

{hex, [
  {doc, #{provider => ex_doc}}
]}.

{overrides, [{override, cowboy, [{deps, [{cowlib, "< 3.0.0"}, {ranch, "< 3.0.0"}]}]}]}.
