chiark / gitweb /
bash-completion: add 'gdb' verb for coredumpctl
authorDave Reisner <dreisner@archlinux.org>
Fri, 9 Nov 2012 17:51:24 +0000 (12:51 -0500)
committerDave Reisner <dreisner@archlinux.org>
Fri, 9 Nov 2012 19:12:36 +0000 (14:12 -0500)
This also fixes value completion for journal fields, as the completion
for the RHS of the '=' was missing when it was borrowed from journalctl.

shell-completion/systemd-bash-completion.sh

index 5f829b3..4c8161f 100644 (file)
@@ -281,7 +281,7 @@ _loginctl () {
 complete -F _loginctl loginctl
 
 __journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC}
-                  ERRNO SYSLOG_{FACILITY,IDENTIFIER,PID}
+                  ERRNO SYSLOG_{FACILITY,IDENTIFIER,PID} COREDUMP_EXE
                   _{P,U,G}ID _COMM _EXE _CMDLINE
                   _AUDIT_{SESSION,LOGINUID}
                   _SYSTEMD_{CGROUP,SESSION,UNIT,OWNER_UID}
@@ -349,7 +349,7 @@ _coredumpctl() {
 
         local -A VERBS=(
             [LIST]='list'
-            [DUMP]='dump'
+            [DUMP]='dump gdb'
         )
 
         if __contains_word "$prev" '--output -o'; then
@@ -368,6 +368,9 @@ _coredumpctl() {
                 mapfile -t field_vals < <(systemd-coredumpctl -F "${prev%=}" 2>/dev/null)
                 COMPREPLY=( $(compgen -W '${field_vals[*]}' -- "${cur#=}") )
                 return 0
+        elif [[ $prev = '=' ]]; then
+                mapfile -t field_vals < <(systemd-coredumpctl -F "${COMP_WORDS[COMP_CWORD-2]}" 2>/dev/null)
+                comps=${field_vals[*]}
         else
                 for ((i=0; i <= COMP_CWORD; i++)); do
                         if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]}; then