%
%% Compilation.

{minimum_otp_vsn, "25"}.

{erl_opts, [
    debug_info,
    report,
    verbose,
    warn_missing_spec_all,
    warnings_as_errors
]}.

{project_plugins, [
    {erlfmt, "1.2.0"},
    {rebar3_ex_doc, "0.2.18"},
    {rebar3_hank, "1.4.0"},
    {rebar3_hex, "7.0.7"},
    {rebar3_lint, "3.0.1"}
]}.

{deps, [
    {tls_certificate_check, "1.19.0"}
]}.

%
%% Development.

{alias, [
    {ci, [
        fmt,
        hank,
        lint,
        xref,
        dialyzer,
        ct,
        cover,
        ex_doc
    ]}
]}.

{shell, [
    {apps, [
        rebar3_checkshell
    ]}
]}.

{erlfmt, [
    write,
    {files, [
        "elvis.config",
        "rebar.config",
        "src/*.app.src",
        "src/**/*.erl",
        "test/**/*.erl"
    ]}
]}.

{profiles, [
    {test, [
        {cover_enabled, true},
        {cover_excl_mods, [rebar3_checkshell]},
        {cover_opts, [verbose]},
        {deps, [{meck, "0.9.2"}]},
        {erl_opts, [
            debug_info,
            report,
            verbose,
            nowarn_missing_spec_all,
            warnings_as_errors
        ]},
        {extra_src_dirs, [{"test", [{recursive, true}]}]},
        {xref_extra_paths, ["test"]}
    ]}
]}.

{escript_incl_apps, [rebar]}.

%
%% Static analysis.

{dialyzer, [
    {warnings, [
        error_handling,
        underspecs,
        unmatched_returns,
        no_unknown
    ]}
]}.

{xref_checks, [
    deprecated_function_calls,
    exports_not_used,
    locals_not_used
]}.

%
%% Publishing.

{ex_doc, [
    {extras, [
        "README.md"
    ]},
    {main, "README.md"},
    {api_reference, false},
    {source_url, "https://github.com/paulo-ferraz-oliveira/rebar3_checkshell"},
    {prefix_ref_vsn_with_v, false}
]}.

{hex, [{doc, ex_doc}]}.
