Perhaps to some extent. elixirc has the --warnings-as-errors flag.
โ hello_elixir [master] โก elixirc Usage: elixirc [elixir switches] [compiler switches] [.ex files] -o The directory to output compiled files --no-docs Do not attach documentation to compiled modules --no-debug-info Do not attach debug info to compiled modules --ignore-module-conflict --warnings-as-errors Treat warnings as errors and return non-zero exit code --verbose Print informational messages. ** Options given after -- are passed down to the executed code ** Options can be passed to the erlang runtime using ELIXIR_ERL_OPTIONS ** Options can be passed to the erlang compiler using ERL_COMPILER_OPTIONS
For a module like this with a warning:
defmodule Useless do defp another_userless, do: nil end
When compiling without a flag:
โ 01_language [master] โก elixirc useless.ex useless.ex:2: warning: function another_userless/0 is unused โ 01_language [master] โก echo $? 0
You get a return code as 0 .
But when you compile the --warnings-as-errors flag, it returns exit code 1 .
โ 01_language [master] โก elixirc --warnings-as-errors useless.ex useless.ex:1: warning: redefining module Useless useless.ex:2: warning: function another_userless/0 is unused โ 01_language [master] โก echo $? 1
You can use this return code in your script compiler to break the build process.
source share