%% -*- 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.12.0"},
{uuid, "2.0.7", {pkg, uuid_erl}},
{erlydtl, "0.14.0"},
{jhn_stdlib, "3.8.0"},
{pmod_transform, "1.1.0"},
{routing_tree, "1.0.6"},
{thoas, "1.2.0"}
]}.
{profiles, [
{prod, [{relx, [{dev_mode, false}, {include_erts, true}]}]},
{lint, [
{plugins, [
rebar3_hex,
{rebar3_lint, {git, "https://github.com/project-fifo/rebar3_lint.git", {tag, "0.1.11"}}}
]}
]}
]}.
{dialyzer, [
{warnings, [
unknown
]},
{plt_apps, all_deps},
{plt_extra_apps, [jhn_stdlib,
edoc,
xmerl,
uuid,
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/tsloughter/rebar3_erlydtl_plugin.git", {branch, "master"}}}
]}.
{provider_hooks, [
{pre, [{compile, {erlydtl, compile}}]}
]}.
{elvis,
[#{dirs => ["src"],
filter => "*.erl",
rules => [{elvis_style, line_length,
#{ignore => [],
limit => 120,
skip_comments => false}},
{elvis_style, no_tabs},
{elvis_style, no_trailing_whitespace},
{elvis_style, macro_names, #{ignore => []}},
{elvis_style, macro_module_names},
{elvis_style, operator_spaces, #{rules => [{right, ","},
{right, "++"},
{left, "++"}]}},
{elvis_style, nesting_level, #{level => 4}},
{elvis_style, god_modules,
#{limit => 25,
ignore => []}},
{elvis_style, no_if_expression},
{elvis_style, used_ignored_variable},
{elvis_style, no_behavior_info},
{
elvis_style,
module_naming_convention,
#{regex => "^[a-z]([a-z0-9]*_?)*(_SUITE)?$",
ignore => []}
},
{
elvis_style,
function_naming_convention,
#{regex => "^([a-z][a-z0-9]*_?)*$"}
},
{elvis_style, state_record_and_type},
{elvis_style, no_spec_with_records},
{elvis_style, dont_repeat_yourself, #{min_complexity => 30}},
{elvis_style, no_debug_call, #{ignore => []}}
]
},
#{dirs => ["."],
filter => "rebar.config",
rules => [{elvis_project, no_deps_master_rebar, #{ignore => []}},
{elvis_project, protocol_for_deps_rebar, #{ignore => []}}]
}
]
}.
{ex_doc, [{proglang, erlang},
{main, <<"nova">>},
{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/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}}
]}.