diff mbox series

trace-cmd list: Show events in bash completion

Message ID 20250408113704.42fb24c8@gandalf.local.home (mailing list archive)
State Accepted
Commit f4ede17d96d3515afd866e834b7b5219ddedaf1f
Headers show
Series trace-cmd list: Show events in bash completion | expand

Commit Message

Steven Rostedt April 8, 2025, 3:37 p.m. UTC
From: "Steven Rostedt (Google)" <rostedt@goodmis.org>

Even though trace-cmd list -e shows the events, there's several times where
it is useful to see a format of an event that is known, and having tab
completion for those events would be useful.

Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
 tracecmd/trace-cmd.bash | 6 ++++++
 1 file changed, 6 insertions(+)
diff mbox series

Patch

diff --git a/tracecmd/trace-cmd.bash b/tracecmd/trace-cmd.bash
index d7816bcf..ee7c79a2 100644
--- a/tracecmd/trace-cmd.bash
+++ b/tracecmd/trace-cmd.bash
@@ -84,6 +84,12 @@  __trace_cmd_list_complete()
 				 sed -e 's/.*\(-.\).*/\1/')
 	    COMPREPLY=( $(compgen -W "${cmds}" -- "${cur}") )
 	    ;;
+	-e)
+	    local list=$(trace-cmd list -e "$cur")
+	    local events=$(for e in $list; do echo ${e/*:/}; done | sort -u)
+	    local systems=$(for s in $list; do echo ${s/:*/:}; done | sort -u)
+	    COMPREPLY=( $(compgen -W "all ${events} ${systems}" -- "${cur}") )
+	    ;;
 	*)
 	    size=${#words[@]}
 	    if [ $size -gt 3 ]; then