From 9139b4da9919095b615c35ae7572dfe3693dd04a Mon Sep 17 00:00:00 2001 From: Andrea Leopardi Date: Thu, 20 Apr 2023 15:37:35 +0100 Subject: Validate --no-exit in "mix format" (#12530) --- lib/mix/lib/mix/tasks/format.ex | 4 ++++ lib/mix/test/mix/tasks/format_test.exs | 6 ++++++ 2 files changed, 10 insertions(+) (limited to 'lib') 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", """ -- cgit v1.2.1