From: Jonathan Rajotte Date: Mon, 28 May 2018 21:31:48 +0000 (-0400) Subject: Bash completion: ignore namespace for xmllint parsing X-Git-Tag: v2.10.5~3 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=c94a8f2ce768e3d032890b10512fb8a09721f237;p=lttng-tools.git Bash completion: ignore namespace for xmllint parsing xmllint cli does not "easily" support namespace. One can use the local_name() xpath function and other "trick". The simplest trick for bash completion is to ignore the namespace altogether. Replacing "xmlns" by "ignore" does the job. Signed-off-by: Jonathan Rajotte Signed-off-by: Jérémie Galarneau --- diff --git a/extras/lttng-bash_completion b/extras/lttng-bash_completion index ef1a71ab3..c7482c545 100644 --- a/extras/lttng-bash_completion +++ b/extras/lttng-bash_completion @@ -18,7 +18,7 @@ # Generates COMPREPLY with the existing session names _lttng_complete_sessions() { local sessions - sessions=$(lttng --mi xml list | xmllint --xpath "//command/output/sessions/session/name" - 2>/dev/null | sed -e 's///g' -e $'s/<\/name>/\\n/g') + sessions=$(lttng --mi xml list | sed '2 s/xmlns/ignore/g' | xmllint --xpath "//command/output/sessions/session/name" - 2>/dev/null | sed -e 's///g' -e $'s/<\/name>/\\n/g') COMPREPLY=( $(compgen -W "${sessions}" -- $cur) ) return } @@ -27,7 +27,7 @@ _lttng_complete_sessions() { # Generates COMPREPLY with the available kernel event _lttng_complete_kernel_events() { local kernel_event - kernel_event=$(lttng --mi xml list -k | xmllint --xpath "//command/output/domains/domain[./type = 'KERNEL']/events/event/name" - 2>/dev/null | sed -e "s///g" -e $"s/<\/name>/\\n/g") + kernel_event=$(lttng --mi xml list -k |sed '2 s/xmlns/ignore/g' | xmllint --xpath "//command/output/domains/domain[./type = 'KERNEL']/events/event/name" - 2>/dev/null | sed -e "s///g" -e $"s/<\/name>/\\n/g") COMPREPLY=( $(compgen -W "${kernel_event}" -- $cur) ) return } @@ -35,7 +35,7 @@ _lttng_complete_kernel_events() { # Generates COMPREPLY with the available ust event _lttng_complete_ust_events() { local ust_event - ust_event=$(lttng --mi xml list -u | xmllint --xpath "//command/output/domains/domain[./type = 'UST']/pids/pid/events/event/name" - 2>/dev/null | sed -e "s///g" -e $"s/<\/name>/\\n/g") + ust_event=$(lttng --mi xml list -u | sed '2 s/xmlns/ignore/g' | xmllint --xpath "//command/output/domains/domain[./type = 'UST']/pids/pid/events/event/name" - 2>/dev/null | sed -e "s///g" -e $"s/<\/name>/\\n/g") COMPREPLY=( $(compgen -W "${ust_event}" -- $cur) ) return } @@ -43,7 +43,7 @@ _lttng_complete_ust_events() { # Generates COMPREPLY with the available jul event _lttng_complete_jul_events() { local jul_event - jul_event=$(lttng --mi xml list -j | xmllint --xpath "//command/output/domains/domain[./type = 'JUL']/pids/pid/events/event/name" - 2>/dev/null | sed -e "s///g" -e $"s/<\/name>/\\n/g") + jul_event=$(lttng --mi xml list -j | sed '2 s/xmlns/ignore/g' | xmllint --xpath "//command/output/domains/domain[./type = 'JUL']/pids/pid/events/event/name" - 2>/dev/null | sed -e "s///g" -e $"s/<\/name>/\\n/g") COMPREPLY=( $(compgen -W "${jul_event}" -- $cur) ) return }