[PATCH 08/23] kbuild: simplify find command for rustfmt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The current 'find' command does not prune the rust/test directory
itself, requiring an additional 'grep -Fv' command to exclude it.
This is cumbersome.

The correct use of the -prune option can be seen in the 'make clean'
rule.

[Current command]

  $ find . -type f -name '*.rs' -o -path ./rust/test -prune | wc
       70      70    1939
  $ find . -type f -name '*.rs' -o -path ./rust/test -prune | grep rust/test
  ./rust/test

[Improved command]

  $ find . -path ./rust/test -prune -o -type f -name '*.rs' -print | wc
       69      69    1927
  $ find . -path ./rust/test -prune -o -type f -name '*.rs' -print | grep rust/test

With the improved 'find' command, the grep command is no longer needed.

There is also no need to use the absolute path, so $(abs_srctree) can be
replaced with $(srctree).

The pruned directory rust/test must be prefixed with $(srctree) instead
of $(objtree). Otherwise, 'make O=... rustfmt' would visit the stale
rust/test directory remaining in the source tree.

Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
---

 Makefile | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 5b16e0605a77..4992b2895dd5 100644
--- a/Makefile
+++ b/Makefile
@@ -1740,9 +1740,8 @@ PHONY += rustfmt rustfmtcheck
 # when matching, which is a problem when e.g. `srctree` is `..`.
 # We `grep` afterwards in order to remove the directory entry itself.
 rustfmt:
-	$(Q)find $(abs_srctree) -type f -name '*.rs' \
-		-o -path $(abs_objtree)/rust/test -prune \
-		| grep -Fv $(abs_objtree)/rust/test \
+	$(Q)find $(srctree) -path $(srctree)/rust/test -prune \
+		-o -type f -name '*.rs' -print \
 		| grep -Fv generated \
 		| xargs $(RUSTFMT) $(rustfmt_flags)
 
-- 
2.43.0





[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux