X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=shell-completion%2Fzsh%2F_journalctl;h=a469bbc9a70cf52447c41d80f6fa3ac1489dc274;hp=4409fd7d68246ac038d5bdbc1e5acef7278ccdc7;hb=baade8cc237c37bd8905d86ec6e9c7872d4abe03;hpb=4a8fa990693edc47ac2192bf088a6e22e2390b41 diff --git a/shell-completion/zsh/_journalctl b/shell-completion/zsh/_journalctl index 4409fd7d6..a469bbc9a 100644 --- a/shell-completion/zsh/_journalctl +++ b/shell-completion/zsh/_journalctl @@ -1,11 +1,5 @@ #compdef journalctl -_outputmodes() { - local -a _output_opts - _output_opts=(short short-monotonic verbose export json json-pretty json-see cat) - _describe -t output 'output mode' _output_opts || compadd "$@" -} - _list_fields() { local -a journal_fields journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC} @@ -13,18 +7,24 @@ _list_fields() { _{P,U,G}ID _COMM _EXE _CMDLINE _AUDIT_{SESSION,LOGINUID} _SYSTEMD_{CGROUP,SESSION,UNIT,OWNER_UID} - _SYSTEMD_USER_UNIT + _SYSTEMD_USER_UNIT USER_UNIT _SELINUX_CONTEXT _SOURCE_REALTIME_TIMESTAMP _{BOOT,MACHINE}_ID _HOSTNAME _TRANSPORT _KERNEL_{DEVICE,SUBSYSTEM} _UDEV_{SYSNAME,DEVNODE,DEVLINK} __CURSOR __{REALTIME,MONOTONIC}_TIMESTAMP) - _describe 'possible fields' journal_fields + case $_jrnl_none in + yes) _values -s '=' 'possible fields' \ + "${journal_fields[@]}:value:_journal_fields ${words[CURRENT]%%=*}" ;; + *) _describe 'possible fields' journal_fields ;; + esac } _journal_none() { - local -a _commands _files - _commands=( ${(f)"$(_call_program commands "$service" -F _EXE 2>/dev/null)"} ) + local -a _commands _files _jrnl_none + # Setting use-cache will slow this down considerably + _commands=( ${"$(_call_program commands "$service" -F _EXE 2>/dev/null)"} ) + _jrnl_none='yes' _alternative : \ 'files:/dev files:_files -W /dev -P /dev/' \ "commands:commands:($_commands[@])" \ @@ -41,11 +41,11 @@ _journal_fields() { _journal_boots() { local -a _bootid _previousboots - _bootid=( ${(fao)"$(_call_program bootid "$service -F _BOOT_ID")"} ) + _bootid=( ${(f)"$(_call_program bootid "$service -F _BOOT_ID")"} ) _previousboots=( -{1..${#_bootid}} ) _alternative : \ - "offsets:boot offsets:(${_previousboots[1,-2]})" \ - "bootid:boot ids:(${_bootid[@]})" + "offsets:boot offsets:compadd -a '_previousboots[1,-2]'" \ + "bootid:boot ids:compadd -a _bootid" } _arguments -s \ @@ -56,26 +56,27 @@ _arguments -s \ {-a,--all}'[Show all fields, including long and unprintable]' \ {-f,--follow}'[Follow journal]' \ {-e,--pager-end}'[Jump to the end of the journal in the pager]' \ - {-n,--lines=}'[Number of journal entries to show]:integer' \ + {-n+,--lines=}'[Number of journal entries to show]:integer' \ '--no-tail[Show all lines, even in follow mode]' \ {-r,--reverse}'[Reverse output]' \ - {-o,--output=}'[Change journal output mode]:output modes:_outputmodes' \ + {-o+,--output=}'[Change journal output mode]:output modes:_sd_outputmodes' \ {-x,--catalog}'[Show explanatory texts with each log line]' \ {-q,--quiet}"[Don't show privilege warning]" \ {-m,--merge}'[Show entries from all available journals]' \ - {-b,--boot=}'[Show data only from the specified boot or offset]:boot id or offset:_journal_boots' \ - {-k,--dmesg}'[Show only kernel messages, Implies -b]' \ - {-u,--unit=}'[Show data only from the specified unit]:units:_journal_fields _SYSTEMD_UNIT' \ - '--user-unit[Show data only from the specified user session unit]:units:_journal_fields _SYSTEMD_USER_UNIT' \ - {-p,--priority=}'[Show only messages within the specified priority range]:priority:_journal_fields PRIORITY' \ - {-c,--cursor=}'[Start showing entries from specified cursor]:cursors:_journal_fields __CURSORS' \ - '--after-cursor=[Start showing entries from the location in the journal after the cursor]:cursors:_journal_fields __CURSORS' \ - '--since=[Start showing entries newer or of the specified date]:YYYY-MM-DD HH\:MM\:SS' \ - '--until=[Stop showing entries older or of the specified date]:YYYY-MM-DD HH\:MM\:SS' \ + {-b+,--boot=}'[Show data only from the specified boot or offset]::boot id or offset:_journal_boots' \ + '--list-boots[List boots ordered by time]' \ + {-k,--dmesg}'[Show only kernel messages from the current boot]' \ + {-u+,--unit=}'[Show data only from the specified unit]:units:_journal_fields _SYSTEMD_UNIT' \ + '--user-unit=[Show data only from the specified user session unit]:units:_journal_fields USER_UNIT' \ + {-p+,--priority=}'[Show only messages within the specified priority range]:priority:_journal_fields PRIORITY' \ + {-c+,--cursor=}'[Start showing entries from the specified cursor]:cursors:_journal_fields __CURSORS' \ + '--after-cursor=[Start showing entries from after the specified cursor]:cursors:_journal_fields __CURSORS' \ + '--since=[Start showing entries on or newer than the specified date]:YYYY-MM-DD HH\:MM\:SS' \ + '--until=[Stop showing entries on or older than the specified date]:YYYY-MM-DD HH\:MM\:SS' \ {-F,--field=}'[List all values a certain field takes]:Fields:_list_fields' \ '--system[Show system and kernel messages]' \ '--user[Show messages from user services]' \ - {-D,--directory=}'[Show journal files from directory]:directories:_directories' \ + {-D+,--directory=}'[Show journal files from directory]:directories:_directories' \ '--file=[Operate on specified journal files]:file:_files' \ '--root=[Operate on catalog hierarchy under specified directory]:directories:_directories' \ '--new-id128[Generate a new 128 Bit ID]' \ @@ -84,8 +85,8 @@ _arguments -s \ '--list-catalog[List messages in catalog]' \ '--dump-catalog[Dump messages in catalog]' \ '--update-catalog[Update binary catalog database]' \ - '--setup-keys[Generate new FSS key pair]' \ - '--force[Force recreation of FSS keys]' \ + '--setup-keys[Generate a new FSS key pair]' \ + '--force[Force recreation of the FSS keys]' \ '--interval=[Time interval for changing the FSS sealing key]:time interval' \ '--verify[Verify journal file consistency]' \ '--verify-key=[Specify FSS verification key]:FSS key' \