diff options
author | Erick Dennis <erick.dennis@gmail.com> | 2023-03-23 11:47:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-23 11:47:43 +0100 |
commit | 57f0648e763a8922346bc238ea3f2aa9a8d1aee1 (patch) | |
tree | 45b60d53eebc0938e96a14c1c5da49cd68406af1 | |
parent | 62de47f2e0eb79d69afeb93b3033c0d53a308046 (diff) | |
download | elixir-57f0648e763a8922346bc238ea3f2aa9a8d1aee1.tar.gz |
Don't call formatter on directories (#12488)
-rw-r--r-- | lib/mix/lib/mix/tasks/format.ex | 4 | ||||
-rw-r--r-- | lib/mix/test/mix/tasks/format_test.exs | 10 |
2 files changed, 13 insertions, 1 deletions
diff --git a/lib/mix/lib/mix/tasks/format.ex b/lib/mix/lib/mix/tasks/format.ex index 8965aaa11..fe03014f1 100644 --- a/lib/mix/lib/mix/tasks/format.ex +++ b/lib/mix/lib/mix/tasks/format.ex @@ -586,7 +586,9 @@ defmodule Mix.Tasks.Format do end defp stdin_or_wildcard("-"), do: [:stdin] - defp stdin_or_wildcard(path), do: path |> Path.expand() |> Path.wildcard(match_dot: true) + + defp stdin_or_wildcard(path), + do: path |> Path.expand() |> Path.wildcard(match_dot: true) |> Enum.filter(&File.regular?/1) defp elixir_format(content, formatter_opts) do case Code.format_string!(content, formatter_opts) do diff --git a/lib/mix/test/mix/tasks/format_test.exs b/lib/mix/test/mix/tasks/format_test.exs index d041d6295..d5fed1573 100644 --- a/lib/mix/test/mix/tasks/format_test.exs +++ b/lib/mix/test/mix/tasks/format_test.exs @@ -81,6 +81,16 @@ defmodule Mix.Tasks.FormatTest do end) end + test "does not try to format a directory that matches a given pattern", context do + in_tmp(context.test, fn -> + File.mkdir_p!("a.ex") + + assert_raise Mix.Error, ~r"Could not find a file to format", fn -> + Mix.Tasks.Format.run(["*.ex"]) + end + end) + end + test "reads file from stdin and prints to stdout", context do in_tmp(context.test, fn -> File.write!("a.ex", """ |