X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=shell-completion%2Fsystemd-zsh-completion.zsh;h=8b60859c23654e57e52b1912cfb3a5d756468762;hp=7799bf68dad99f934cf4f45941a3500596df98e8;hb=90cf049bfe9a7dcb20a1bd0d12e8b2194dbcd357;hpb=e3657ecd7f9f9bd6a1719fc808639cd4b780674a diff --git a/shell-completion/systemd-zsh-completion.zsh b/shell-completion/systemd-zsh-completion.zsh index 7799bf68d..8b60859c2 100644 --- a/shell-completion/systemd-zsh-completion.zsh +++ b/shell-completion/systemd-zsh-completion.zsh @@ -27,8 +27,6 @@ _ctls() '--no-legend[Do not print a legend, i.e. the column headers and the footer with hints]' \ '--no-pager[Do not pipe output into a pager]' \ '--no-ask-password[Do not ask for system passwords]' \ - '--order[When generating graph for dot, show only order]' \ - '--require[When generating graph for dot, show only requirement]' \ '--system[Connect to system manager]' \ '--user[Connect to user service manager]' \ '--global[Enable/disable unit files globally]' \ @@ -72,12 +70,13 @@ _ctls() {-c,--cursor=}'[Start showing entries from specified cursor]:cursors:_journal_fields __CURSORS' \ {-b,--this-boot}'[Show data only from 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 _SYSTEMD_USER_UNIT' \ {-p,--priority=}'[Show only messages within the specified priority range]:priority:_journal_fields PRIORITY' \ {-f,--follow}'[Follow journal]' \ {-n,--lines=}'[Number of journal entries to show]:integer' \ '--no-tail[Show all lines, even in follow mode]' \ {-o,--output=}'[Change journal output mode]:output modes:_outputmodes' \ - {--full}'[Show long fields in full]' \ + '--full[Show long fields in full]' \ {-a,--all}'[Show all fields, including long and unprintable]' \ {-q,--quiet}"[Don't show privilege warning]" \ '--no-pager[Do not pipe output into a pager]' \ @@ -95,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 \ @@ -136,6 +136,8 @@ _ctls() _arguments \ {-h,--help}'[Show help text.]' \ '--user[Shows performance data of user sessions instead of the system manager.]' \ + '--order[When generating graph for dot, show only order]' \ + '--require[When generating graph for dot, show only requirement]' \ '*::systemd-analyze commands:_systemd_analyze_command' ;; systemd-ask-password) @@ -271,7 +273,7 @@ _systemd-nspawn(){ } _systemd_inhibit_command(){ - if (( CURRENT == 1 )); then + if (( CURRENT == 1 )); then compset -q _normal else @@ -293,6 +295,7 @@ _systemd_analyze_command(){ 'time:Print the time taken to start' 'blame:prints a list of all running units, ordered by the time they took to initialize' 'plot:prints an SVG graphic detailing which system services have been started at what time' + 'dot:Dump dependency graph for dot(1)' ) if (( CURRENT == 1 )); then @@ -314,7 +317,7 @@ _outputmodes() { _output_opts=(short short-monotonic verbose export json json-pretty json-see cat) _describe -t output 'output mode' _output_opts || compadd "$@" } - + (( $+functions[_systemctl_command] )) || _systemctl_command() { @@ -327,12 +330,15 @@ _outputmodes() { "restart:Start or restart one or more units" "condrestart:Restart one or more units if active" "try-restart:Restart one or more units if active" - "reload-or-restart:Reload one or more units is possible, otherwise start or restart" - "force-reload:Reload one or more units is possible, otherwise restart if active" - "reload-or-try-restart:Reload one or more units is possible, otherwise restart if active" + "reload-or-restart:Reload one or more units if possible, otherwise start or restart" + "force-reload:Reload one or more units if possible, otherwise restart if active" + "hibernate:Hibernate the system" + "hybrid-sleep:Hibernate and suspend the system" + "reload-or-try-restart:Reload one or more units if possible, otherwise restart if active" "isolate:Start one unit and stop all others" "kill:Send signal to processes of a unit" "is-active:Check whether units are active" + "is-failed:Check whether units are failed" "status:Show runtime status of one or more units" "show:Show properties of one or more units/jobs or the manager" "reset-failed:Reset failed state for all, one, or more units" @@ -349,7 +355,6 @@ _outputmodes() { "list-jobs:List jobs" "cancel:Cancel all, one, or more jobs" "dump:Dump server status" - "dot:Dump dependency graph for dot(1)" "snapshot:Create a snapshot" "delete:Remove one or more snapshots" "show-environment:Dump environment" @@ -399,7 +404,9 @@ _outputmodes() { __systemctl() { - systemctl --full --no-legend --no-pager "$@" + local -a _modes + _modes=("--user" "--system") + systemctl ${words:*_modes} --full --no-legend --no-pager "$@" } @@ -409,7 +416,7 @@ _systemctl_all_units() if ( [[ ${+_sys_all_units} -eq 0 ]] || _cache_invalid SYS_ALL_UNITS ) && ! _retrieve_cache SYS_ALL_UNITS; then - _sys_all_units=( $(__systemctl list-units --all | { while read a b; do echo "$a"; done; }) ) + _sys_all_units=( $(__systemctl list-units --all | { while read a b; do echo " $a"; done; }) ) _store_cache SYS_ALL_UNITS _sys_all_units fi } @@ -422,7 +429,7 @@ _systemctl_really_all_units() if ( [[ ${+_sys_really_all_units} -eq 0 ]] || _cache_invalid SYS_REALLY_ALL_UNITS ) && ! _retrieve_cache SYS_REALLY_ALL_UNITS; then - all_unit_files=( $(__systemctl list-unit-files | { while read a b; do echo "$a"; done; }) ) + all_unit_files=( $(__systemctl list-unit-files | { while read a b; do echo " $a"; done; }) ) _systemctl_all_units really_all_units=($_sys_all_units $all_unit_files) _sys_really_all_units=(${(u)really_all_units}) @@ -442,20 +449,20 @@ _filter_units_by_property() { unit=${units[i]} prop=${(f)"$(_call_program units "$service show --no-pager --property="$property" ${unit} 2>/dev/null")"} if [[ "${prop}" = "$property=$value" ]]; then - echo "${unit}" + echo " ${unit}" fi done } -_systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read a b; do echo "$a"; done; }) )} -_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read a b c d; do [[ $c == "inactive" ]] && echo "$a"; done; }) )} -_systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read a b; do echo "$a"; done; }) )} -_systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read a b; do [[ $b == "enabled" ]] && echo "$a"; done; }) )} -_systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read a b; do [[ $b == "disabled" ]] && echo "$a"; done; }) )} -_systemctl_masked_units() {_sys_masked_units=( $(__systemctl list-unit-files | { while read a b; do [[ $b == "masked" ]] && echo "$a"; done; }) )} +_systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read a b; do echo " $a"; done; }) )} +_systemctl_inactive_units(){_sys_inactive_units=($(__systemctl list-units --all | { while read a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }) )} +_systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read a b; do echo " $a"; done; }) )} +_systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read a b; do [[ $b == "enabled" ]] && echo " $a"; done; }) )} +_systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read a b; do [[ $b == "disabled" ]] && echo " $a"; done; }) )} +_systemctl_masked_units() {_sys_masked_units=( $(__systemctl list-unit-files | { while read a b; do [[ $b == "masked" ]] && echo " $a"; done; }) )} # Completion functions for ALL_UNITS -for fun in is-active is-enabled status show mask preset ; do +for fun in is-active is-failed is-enabled status show mask preset ; do (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() { _systemctl_really_all_units @@ -468,7 +475,8 @@ for fun in disable reenable ; do (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() { _systemctl_enabled_units - compadd "$@" -a - _sys_enabled_units + _systemctl_disabled_units + compadd "$@" -a - _sys_enabled_units _sys_disabled_units } done @@ -528,7 +536,7 @@ for fun in restart reload-or-restart ; do _systemctl_all_units compadd "$@" - $( _filter_units_by_property CanStart yes \ ${_sys_all_units[*]} | while read line; do \ - [[ "$line" =~ \.(device|snapshot|socket|timer)$ ]] || echo "$line"; \ + [[ "$line" =~ \.device$ ]] || echo " $line"; \ done ) } done @@ -551,7 +559,7 @@ done (( $+functions[_systemctl_delete] )) || _systemctl_delete() { compadd "$@" - $(__systemctl list-units --type snapshot --all \ - | cut -d' ' -f1 2>/dev/null ) || _message "no snampshot found" + | cut -d' ' -f1 2>/dev/null ) || _message "no snapshot found" } # Completion functions for ENVS @@ -565,14 +573,14 @@ for fun in set-environment unset-environment ; do fi compadd "$@" ${suf} - $(systemctl show-environment \ - | while read line; do echo "${line%%\=}";done ) + | while read line; do echo " ${line%%\=}";done ) } done (( $+functions[_systemctl_link] )) || _systemctl_link() { _files } # no systemctl completion for: -# [STANDALONE]='daemon-reexec daemon-reload default dot dump +# [STANDALONE]='daemon-reexec daemon-reload default dump # emergency exit halt kexec list-jobs list-units # list-unit-files poweroff reboot rescue show-environment' # [NAME]='snapshot load' @@ -604,6 +612,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} @@ -612,18 +621,27 @@ _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" ) - _fields=( ${(f)"$(_call_program fields $cmd[@])"} ) + _fields=( ${(f)"$(_call_program fields $cmd[@])"} ) typeset -U _fields _describe 'possible values' _fields } -_loginctl_all_sessions(){_sys_all_sessions=($(loginctl list-sessions | { while read a b; do echo "$a"; done; }) )} -_loginctl_all_users() {_sys_all_users=( $(loginctl list-users | { while read a b; do echo "$a"; done; }) )} -_loginctl_all_seats() {_sys_all_seats=( $(loginctl list-seats | { while read a b; do echo "$a"; done; }) )} +_loginctl_all_sessions(){_sys_all_sessions=($(loginctl list-sessions | { while read a b; do echo " $a"; done; }) )} +_loginctl_all_users() {_sys_all_users=( $(loginctl list-users | { while read a b; do echo " $a"; done; }) )} +_loginctl_all_seats() {_sys_all_seats=( $(loginctl list-seats | { while read a b; do echo " $a"; done; }) )} # Completion functions for SESSIONS for fun in session-status show-session activate lock-session unlock-session terminate-session kill-session ; do @@ -772,8 +790,8 @@ _localectl_set-x11-keymap() { #_model=( ${(f)"$(echo $_file[2] | awk '/^ / {print $1}')"} ) #_variant=( ${(f)"$(echo $_file[3] | awk '/^ / {print $1}')"} ) #_options=( ${(f)"$(echo ${_file[4]//:/\\:} | awk '/^ / {print $1}')"} ) - - case $CURRENT in + + case $CURRENT in 2) _describe layouts _layout ;; 3) _describe models _model;; 4) _describe variants _variant;; @@ -940,7 +958,7 @@ _udevadm_control(){ '--timeout=[The maximum number of seconds to wait for a reply from systemd-udevd.]' \ '--help[Print help text.]' } - + _udevadm_monitor(){ _arguments \ '--kernel[Print the kernel uevents.]' \ @@ -963,7 +981,7 @@ _udevadm_test-builtin(){ if (( CURRENT == 2 )); then _arguments \ '--help[Print help text]' \ - '*::builtins:(blkid btrfs firmware hwdb input_id kmod path_id usb_id uaccess)' + '*::builtins:(blkid btrfs hwdb input_id kmod path_id usb_id uaccess)' elif (( CURRENT == 3 )); then _arguments \ '--help[Print help text]' \