%% -*- mode: erlang;erlang-indent-level: 2;indent-tabs-mode: nil -*-
%% ex: ts=4 sw=4 ft=erlang et

%% == Erlang Compiler ==

%% Erlang compiler options
{erl_opts, [ warn_unused_vars
           , warn_export_all
           , warn_shadow_vars
           , warn_unused_import
           , warn_unused_function
           , warn_bif_clash
           , warn_unused_record
           , warn_deprecated_function
           , warn_obsolete_guard
           , strict_validation
           , warn_export_vars
           , warn_exported_vars
           , warn_missing_spec
           , warn_untyped_record
           , debug_info]}.

{profiles, [
  {test, [
    {deps, [ {mixer,       "0.1.5", {pkg, inaka_mixer}}
           , {meck,        "0.8.4"}
           , {xref_runner, "1.0.0"}
    ]}
  ]},
  {shell, [
    {deps, [
      {sync, {git, "https://github.com/rustyio/sync.git", {ref, "9c78e7b"}}}
    ]}
  ]}
]}.

%% == Common Test ==

{ct_compile_opts, [ warn_unused_vars
                  , warn_export_all
                  , warn_shadow_vars
                  , warn_unused_import
                  , warn_unused_function
                  , warn_bif_clash
                  , warn_unused_record
                  , warn_deprecated_function
                  , warn_obsolete_guard
                  , strict_validation
                  , warn_export_vars
                  , warn_exported_vars
                  , warn_missing_spec
                  , warn_untyped_record
                  , debug_info]}.

{ct_opts, [ {sys_config, ["./config/test.config"]}
          , {logdir, "./logs"}
          , {verbose, true}
          ]}.

%% == Cover ==

{cover_enabled, true}.

{cover_opts, [verbose]}.

%% == Dependencies ==

{deps, [ {elvis, "0.3.5", {pkg, elvis_core}}
       , {getopt,  "0.8.2"}
       , {egithub, "0.3.2"}
       , {katana_code, "0.1.0"}
       ]}.

%% == Dialyzer ==

{dialyzer, [ {warnings, [ no_return
                        , unmatched_returns
                        , error_handling
                        ]}
           , {plt_apps, top_level_deps}
           , {plt_extra_apps, []}
           , {plt_location, local}
           , {base_plt_apps, [stdlib, kernel]}
           , {base_plt_location, global}]}.

%% == Shell ==

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

{escript_main_app, elvis}.
{escript_name, "elvis"}.
% Needed because the script refers to elvis folder instead elvis_shell
{escript_incl_apps, [elvis_shell]}.

{overrides, [ {override, jiffy, [ {plugins, [pc]}
                                , {artifacts, ["priv/jiffy.so"]}
                                , {provider_hooks, [{post, [ {compile, {pc, compile}}
                                                           , {clean, {pc, clean}}
                                                           ]}]}
                                ]}
            ]}.
