Add mix_unused to detect unused functions

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel 2021-10-05 15:29:23 +02:00
parent 2f83e5a3d5
commit 5d8d2e80a5
No known key found for this signature in database
GPG key ID: A061B9DDE0CA0773
2 changed files with 42 additions and 2 deletions

43
mix.exs
View file

@ -9,7 +9,7 @@ defmodule Mobilizon.Mixfile do
version: @version, version: @version,
elixir: "~> 1.11", elixir: "~> 1.11",
elixirc_paths: elixirc_paths(Mix.env()), elixirc_paths: elixirc_paths(Mix.env()),
compilers: [:gettext] ++ Mix.compilers(), compilers: [:gettext, :unused] ++ Mix.compilers(),
xref: [exclude: [:eldap]], xref: [exclude: [:eldap]],
start_permanent: Mix.env() == :prod, start_permanent: Mix.env() == :prod,
aliases: aliases(), aliases: aliases(),
@ -37,6 +37,44 @@ defmodule Mobilizon.Mixfile do
config_providers: [{Mobilizon.ConfigProvider, "/etc/mobilizon/config.exs"}], config_providers: [{Mobilizon.ConfigProvider, "/etc/mobilizon/config.exs"}],
steps: [:assemble, &copy_files/1, &copy_config/1] steps: [:assemble, &copy_files/1, &copy_config/1]
] ]
],
unused: [
ignore: [
Mobilizon.Storage.Repo,
Mobilizon.Storage.PostgresTypes,
Mobilizon.Factory,
Mobilizon.Web.Router.Helpers,
Mobilizon.Web.Email.Mailer,
Mobilizon.Web.Auth.Guardian.Plug,
Mobilizon.Web.Gettext,
Mobilizon.Web.Endpoint,
Mobilizon.Web.Auth.Guardian,
Mobilizon.Web,
Mobilizon.GraphQL.Schema.Compiled,
Mobilizon.GraphQL.Schema,
Mobilizon.Web.Router,
Mobilizon.Users.Setting.Location,
{:_, :start_link, 1},
{:_, :child_spec, 1},
{:_, :__impl__, 1},
{:_, :__schema__, :_},
{:_, :__struct__, 0..1},
{:_, :__changeset__, 0},
{:_, :create_type, 0},
{:_, :drop_type, 0},
{:_, :schema, 0},
{:_, :schemaless_type, 0},
{:_, :valid_value?, 0..1},
{:_, :__enum_map__, 0},
{:_, :__absinthe_blueprint__, :_},
{:_, :__absinthe_function__, :_},
{~r/^Mobilizon.Web.*Controller/, :_, 2},
{~r/^Mobilizon.Web.*View/, :_, :_},
{~r/^Mobilizon.Web.Email.*/, :render, 3},
{~r/^Mobilizon.Service.HTTP.*Client/, :_, :_},
{~r/^Mobilizon.Cldr.*/, :_, :_},
{Mobilizon.Web.GraphQLSocket, :__channel__, 1}
]
] ]
] ]
end end
@ -183,7 +221,8 @@ defmodule Mobilizon.Mixfile do
{:mox, "~> 1.0", only: :test}, {:mox, "~> 1.0", only: :test},
{:junit_formatter, "~> 3.1", only: [:test]}, {:junit_formatter, "~> 3.1", only: [:test]},
{:sobelow, "~> 0.8", only: [:dev, :test]}, {:sobelow, "~> 0.8", only: [:dev, :test]},
{:doctor, "~> 0.18.0", only: :dev} {:doctor, "~> 0.18.0", only: :dev},
{:mix_unused, "~> 0.2.0"}
] ++ oauth_deps() ] ++ oauth_deps()
end end

View file

@ -94,6 +94,7 @@
"mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm", "f278585650aa581986264638ebf698f8bb19df297f66ad91b18910dfc6e19323"}, "mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm", "f278585650aa581986264638ebf698f8bb19df297f66ad91b18910dfc6e19323"},
"mimetype_parser": {:hex, :mimetype_parser, "0.1.3", "628ac9fe56aa7edcedb534d68397dd66674ab82493c8ebe39acb9a19b666099d", [:mix], [], "hexpm", "7d8f80c567807ce78cd93c938e7f4b0a20b1aaaaab914bf286f68457d9f7a852"}, "mimetype_parser": {:hex, :mimetype_parser, "0.1.3", "628ac9fe56aa7edcedb534d68397dd66674ab82493c8ebe39acb9a19b666099d", [:mix], [], "hexpm", "7d8f80c567807ce78cd93c938e7f4b0a20b1aaaaab914bf286f68457d9f7a852"},
"mix_test_watch": {:hex, :mix_test_watch, "1.1.0", "330bb91c8ed271fe408c42d07e0773340a7938d8a0d281d57a14243eae9dc8c3", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}], "hexpm", "52b6b1c476cbb70fd899ca5394506482f12e5f6b0d6acff9df95c7f1e0812ec3"}, "mix_test_watch": {:hex, :mix_test_watch, "1.1.0", "330bb91c8ed271fe408c42d07e0773340a7938d8a0d281d57a14243eae9dc8c3", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}], "hexpm", "52b6b1c476cbb70fd899ca5394506482f12e5f6b0d6acff9df95c7f1e0812ec3"},
"mix_unused": {:hex, :mix_unused, "0.2.0", "430d011f7c86eec8e4824c66fb69127f192ca3b2b2dd0e0f8f58bf535d319167", [:mix], [], "hexpm", "f3eb53bf416d89be1db801865b3f2a6c8c084e138ad290c82b5136a31e5622ad"},
"mmdb2_decoder": {:hex, :mmdb2_decoder, "3.0.0", "54828676a36e75e9a25bc9a0bb0598d4c7fcc767bf0b40674850b22e05b7b6cc", [:mix], [], "hexpm", "359dc9242915538d1dceb9f6d96c72201dca76ce62e49d22e2ed1e86f20bea8e"}, "mmdb2_decoder": {:hex, :mmdb2_decoder, "3.0.0", "54828676a36e75e9a25bc9a0bb0598d4c7fcc767bf0b40674850b22e05b7b6cc", [:mix], [], "hexpm", "359dc9242915538d1dceb9f6d96c72201dca76ce62e49d22e2ed1e86f20bea8e"},
"mock": {:hex, :mock, "0.3.7", "75b3bbf1466d7e486ea2052a73c6e062c6256fb429d6797999ab02fa32f29e03", [:mix], [{:meck, "~> 0.9.2", [hex: :meck, repo: "hexpm", optional: false]}], "hexpm", "4da49a4609e41fd99b7836945c26f373623ea968cfb6282742bcb94440cf7e5c"}, "mock": {:hex, :mock, "0.3.7", "75b3bbf1466d7e486ea2052a73c6e062c6256fb429d6797999ab02fa32f29e03", [:mix], [{:meck, "~> 0.9.2", [hex: :meck, repo: "hexpm", optional: false]}], "hexpm", "4da49a4609e41fd99b7836945c26f373623ea968cfb6282742bcb94440cf7e5c"},
"mogrify": {:hex, :mogrify, "0.9.1", "a26f107c4987477769f272bd0f7e3ac4b7b75b11ba597fd001b877beffa9c068", [:mix], [], "hexpm", "134edf189337d2125c0948bf0c228fdeef975c594317452d536224069a5b7f05"}, "mogrify": {:hex, :mogrify, "0.9.1", "a26f107c4987477769f272bd0f7e3ac4b7b75b11ba597fd001b877beffa9c068", [:mix], [], "hexpm", "134edf189337d2125c0948bf0c228fdeef975c594317452d536224069a5b7f05"},