chiark / gitweb /
zsh-completion: journalctl query by binary and device
[elogind.git] / shell-completion / systemd-zsh-completion.zsh
index 46e29b217a5ceba6c71fad265adae6d809ae7959..77b26f6d26b27c1213eb69d7d3886a20023454f7 100644 (file)
@@ -94,6 +94,7 @@ _ctls()
                 '--verify[Verify journal file consistency]' \
                 '--list-catalog[List messages in catalog]' \
                 '--update-catalog[Update binary catalog database]' \
+                '*::default: _journal_none'
         ;;
         localectl)
             _arguments \
@@ -608,6 +609,7 @@ _list_fields() {
                     _{P,U,G}ID _COMM _EXE _CMDLINE
                     _AUDIT_{SESSION,LOGINUID}
                     _SYSTEMD_{CGROUP,SESSION,UNIT,OWNER_UID}
+                    _SYSTEMD_USER_UNIT
                     _SELINUX_CONTEXT _SOURCE_REALTIME_TIMESTAMP
                     _{BOOT,MACHINE}_ID _HOSTNAME _TRANSPORT
                     _KERNEL_{DEVICE,SUBSYSTEM}
@@ -616,6 +618,15 @@ _list_fields() {
     _describe 'possible fields' journal_fields
 }
 
+_journal_none() {
+    local -a _commands _files
+    _commands=( ${(f)"$(_call_program commands "$service" -F _EXE 2>/dev/null)"} )
+    _alternative : \
+        'files:/dev files:_files -W /dev -P /dev/' \
+        "commands:commands:($_commands[@])" \
+        'fields:fields:_list_fields'
+}
+
 _journal_fields() {
     local -a _fields cmd
     cmd=("journalctl" "-F ${@[-1]}" "2>/dev/null" )