]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
bash: use the actual journal fields used in the journal files for completion
authorLennart Poettering <lennart@poettering.net>
Mon, 30 May 2016 17:35:24 +0000 (19:35 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 30 May 2016 17:35:24 +0000 (19:35 +0200)
shell-completion/bash/journalctl

index 7c8a9ce361f20205587c6e39dee0de6ef107eb2b..53bedcd92eacbcfffcbc5faab07cd583f7f91d4c 100644 (file)
@@ -30,17 +30,6 @@ __get_machines() {
                { while read a b; do echo " $a"; done; } | sort -u;
 }
 
-__journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC}
-                  ERRNO SYSLOG_{FACILITY,IDENTIFIER,PID} COREDUMP_EXE
-                  _{P,U,G}ID _COMM _EXE _CMDLINE
-                  _CAP_EFFECTIVE _AUDIT_{SESSION,LOGINUID}
-                  _SYSTEMD_{CGROUP,SESSION,{,USER_}UNIT,OWNER_UID,SLICE}
-                  _SELINUX_CONTEXT _SOURCE_REALTIME_TIMESTAMP
-                  _{BOOT,MACHINE}_ID _HOSTNAME _TRANSPORT
-                  _KERNEL_{DEVICE,SUBSYSTEM}
-                  _UDEV_{SYSNAME,DEVNODE,DEVLINK}
-                  __CURSOR __{REALTIME,MONOTONIC}_TIMESTAMP)
-
 __syslog_priorities=(emerg alert crit err warning notice info debug)
 
 _journalctl() {
@@ -79,7 +68,7 @@ _journalctl() {
                                 comps='short short-iso short-precise short-monotonic verbose export json json-pretty json-sse cat'
                         ;;
                         --field|-F)
-                                comps=${__journal_fields[*]}
+                                comps=$(journalctl --fields | sort 2>/dev/null)
                        ;;
                         --machine|-M)
                                 comps=$( __get_machines )
@@ -125,8 +114,9 @@ _journalctl() {
                 mapfile -t field_vals < <(journalctl -F "${COMP_WORDS[COMP_CWORD-2]}" 2>/dev/null)
                 COMPREPLY=( $(compgen -W '${field_vals[*]}' -- "$cur") )
         else
+                mapfile -t field_vals < <(journalctl --fields 2>/dev/null)
                 compopt -o nospace
-                COMPREPLY=( $(compgen -W '${__journal_fields[*]}' -S= -- "$cur") )
+                COMPREPLY=( $(compgen -W '${field_vals[*]}' -S= -- "$cur") )
         fi
 }