%% -*- 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,
     [{katana_test, {git, "https://github.com/inaka/katana-test.git", {tag, "1.0.1"}}},
      {mixer, {git, "https://github.com/inaka/mixer.git", {tag, "1.2.0"}}},
      {cowboy, {git, "https://github.com/ninenines/cowboy.git", {tag, "2.12.0"}}},
      {lasse, {git, "https://github.com/inaka/lasse.git", {tag, "1.2.0"}}}]}]},
  {shell,
   [{deps, [{sync, {git, "https://github.com/rustyio/sync.git", {ref, "11df81d"}}}]}]}]}.

{compiler_error_format, minimal}.

{project_plugins, [rebar3_format, rebar3_hex]}.

%% == 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, []}.

%% == Cover ==

{cover_enabled, true}.

{cover_opts, [verbose]}.

%% == Dependencies ==

{deps, [{gun, "~> 2.2"}]}.
{overrides,
  [
    {override, gun,
      [{deps, [cowlib]}]
    }
  ]
}.

%% == Dialyzer ==

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

%% == Shell ==

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