diff options
author | Andrea Leopardi <an.leopardi@gmail.com> | 2023-04-20 15:37:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-20 15:37:35 +0100 |
commit | 9139b4da9919095b615c35ae7572dfe3693dd04a (patch) | |
tree | 1ee62031308c07a61a8256a5cf09763a4a5dda77 /lib | |
parent | 2f9f2311e394b6383e1c42ec1a56fc7d7dd9e787 (diff) | |
download | elixir-9139b4da9919095b615c35ae7572dfe3693dd04a.tar.gz |
Validate --no-exit in "mix format" (#12530)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/mix/lib/mix/tasks/format.ex | 4 | ||||
-rw-r--r-- | lib/mix/test/mix/tasks/format_test.exs | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/mix/lib/mix/tasks/format.ex b/lib/mix/lib/mix/tasks/format.ex index 52015db56..6d4afc874 100644 --- a/lib/mix/lib/mix/tasks/format.ex +++ b/lib/mix/lib/mix/tasks/format.ex @@ -225,6 +225,10 @@ defmodule Mix.Tasks.Format do IO.warn("--check-equivalent has been deprecated and has no effect") end + if opts[:no_exit] && !opts[:check_formatted] do + Mix.raise("--no-exit can only be used together with --check-formatted") + end + {formatter_opts_and_subs, _sources} = eval_deps_and_subdirectories(dot_formatter, [], formatter_opts, [dot_formatter]) diff --git a/lib/mix/test/mix/tasks/format_test.exs b/lib/mix/test/mix/tasks/format_test.exs index 6e63246e3..cf6f6b544 100644 --- a/lib/mix/test/mix/tasks/format_test.exs +++ b/lib/mix/test/mix/tasks/format_test.exs @@ -175,6 +175,12 @@ defmodule Mix.Tasks.FormatTest do assert_received {:mix_shell, :info, ["The following files are not formatted" <> _]} end + test "raises an error if --no-exit is passed without --check-formatted" do + assert_raise Mix.Error, ~r"--no-exit can only be used together", fn -> + Mix.Tasks.Format.run(["--no-exit", "-"]) + end + end + test "uses inputs and configuration from .formatter.exs", context do in_tmp(context.test, fn -> File.write!(".formatter.exs", """ |