All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] scripts/tags.sh: Exit gracefully if *tags tool not found
@ 2016-04-24 16:42 Eugeniu Rosca
  2016-04-25 12:35 ` Michal Marek
  0 siblings, 1 reply; 5+ messages in thread
From: Eugeniu Rosca @ 2016-04-24 16:42 UTC (permalink / raw)
  To: mmarek, mpe, kirill.shutemov, naveen.n.rao, akpm, sboyd,
	paul.gortmaker
  Cc: linux-kbuild, Eugeniu Rosca

If the needed host utility is not found, current behavior is:

$> make cscope
  GEN     cscope
./scripts/tags.sh: line 140: cscope: command not found
$> make gtags
  GEN     gtags
./scripts/tags.sh: line 145: gtags: command not found
$> make tags
  GEN     tags
xargs: ctags: No such file or directory
sed: can't read tags: No such file or directory
Makefile:1509: recipe for target 'tags' failed
make: *** [tags] Error 2
$> make TAGS
  GEN     TAGS
xargs: etags: No such file or directory
sed: can't read TAGS: No such file or directory
Makefile:1509: recipe for target 'TAGS' failed
make: *** [TAGS] Error 2

This patch allows to exit gracefully in such a situation:

$> make cscope
  GEN     cscope
cscope - not installed?
$> make gtags
  GEN     gtags
gtags - not installed?
$> make tags
  GEN     tags
ctags - not installed?
$> make TAGS
  GEN     TAGS
etags - not installed?

Signed-off-by: Eugeniu Rosca <eugeniu.m.rosca@gmail.com>
---
 scripts/tags.sh | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/scripts/tags.sh b/scripts/tags.sh
index f72f48f..e7f6125 100755
--- a/scripts/tags.sh
+++ b/scripts/tags.sh
@@ -289,6 +289,13 @@ xtags()
 	fi
 }
 
+# Check if a specific utility is accessible on the host
+tool_exists() {
+	[ -x "$(which $1 2> /dev/null)" ] || \
+		{ echo "$1 - not installed?" && return 1; }
+	return 0
+}
+
 # Support um (which uses SUBARCH)
 if [ "${ARCH}" = "um" ]; then
 	if [ "$SUBARCH" = "i386" ]; then
@@ -318,20 +325,24 @@ fi
 remove_structs=
 case "$1" in
 	"cscope")
+		tool_exists cscope || exit 0
 		docscope
 		;;
 
 	"gtags")
+		tool_exists gtags || exit 0
 		dogtags
 		;;
 
 	"tags")
+		tool_exists ctags || exit 0
 		rm -f tags
 		xtags ctags
 		remove_structs=y
 		;;
 
 	"TAGS")
+		tool_exists etags || exit 0
 		rm -f TAGS
 		xtags etags
 		remove_structs=y
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-05-16 13:37 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-24 16:42 [PATCH] scripts/tags.sh: Exit gracefully if *tags tool not found Eugeniu Rosca
2016-04-25 12:35 ` Michal Marek
2016-05-15 13:44   ` Eugeniu Rosca
2016-05-16  7:06     ` Michal Marek
2016-05-16 13:37       ` [PATCH v2] scripts/tags.sh: Handle missing {c,e,g}tags/cscope utilities Eugeniu Rosca

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.