From fb9d85b71ac1a9247af623f98f4e229fccd0fe7d Mon Sep 17 00:00:00 2001 From: Eric Cook Date: Mon, 22 Jun 2015 18:07:32 -0400 Subject: zsh-completion: _loginctl/_systemd/_systemd-inhibit improvements _loginctl: respects the verbose style. which allows a user to get the pre d5df0d950f8bc behavior of not showing a description for sessions and users, by default they aren't shown. zstyle ':completion:*' verbose true or zstyle ':completion:*:loginctl*:*' verbose true # or similar Will show the descriptions. zstyle ':completion:*' verbose true and zstyle ':completion:*:loginctl*:*' verbose false # or similar Won't show descriptions for loginctl only _systemd: complete pids for systemd-notify's --pid option. display a message of the expected argument for other options. _systemd-inhibit: complete block & delay for --mode display a message of the expected argument for --who/--why --- shell-completion/zsh/_loginctl | 22 +++++++++++++++++++--- shell-completion/zsh/_systemd | 16 ++++++++-------- shell-completion/zsh/_systemd-inhibit | 6 +++--- 3 files changed, 30 insertions(+), 14 deletions(-) (limited to 'shell-completion') diff --git a/shell-completion/zsh/_loginctl b/shell-completion/zsh/_loginctl index 1e2a4db2a0..6f6ff6e314 100644 --- a/shell-completion/zsh/_loginctl +++ b/shell-completion/zsh/_loginctl @@ -37,7 +37,12 @@ for fun in session-status show-session activate lock-session unlock-session term _sys_all_sessions_descr[(i)$_ignore:*]=() done - _describe -t systemd-sessions session _sys_all_sessions_descr _sys_all_sessions "$@" + if zstyle -T ":completion:${curcontext}:systemd-sessions" verbose; then + _describe -t systemd-sessions session _sys_all_sessions_descr _sys_all_sessions "$@" + else + local expl + _wanted systemd-sessions expl session compadd "$@" -a _sys_all_sessions + fi } done @@ -56,8 +61,14 @@ for fun in user-status show-user enable-linger disable-linger terminate-user kil _sys_all_users[(i)$_ignore]=() _sys_all_users_descr[(i)$_ignore:*]=() done + # using the common tag `users' here, not rolling our own `systemd-users' tag - _describe -t users user ${_sys_all_users_descr:+_sys_all_users_descr} _sys_all_users "$@" + if zstyle -T ":completion:${curcontext}:users" verbose; then + _describe -t users user ${_sys_all_users_descr:+_sys_all_users_descr} _sys_all_users "$@" + else + local expl + _wanted users expl user compadd "$@" -a _sys_all_users + fi } done @@ -72,7 +83,12 @@ done _sys_all_seats_descr[(i)$_ignore:*]=() done - _describe -t systemd-seats seat _sys_all_seats_descr _sys_all_seats "$@" + if zstyle -T ":completion:${curcontext}:systemd-seats" verbose; then + _describe -t systemd-seats seat _sys_all_seats_descr _sys_all_seats "$@" + else + local expl + _wanted systemd-seats expl seat compadd "$@" -a _sys_all_seats + fi } for fun in seat-status show-seat terminate-seat ; do (( $+functions[_loginctl_$fun] )) || _loginctl_$fun() diff --git a/shell-completion/zsh/_systemd b/shell-completion/zsh/_systemd index 58b1c7b4e5..05459dc5f6 100644 --- a/shell-completion/zsh/_systemd +++ b/shell-completion/zsh/_systemd @@ -5,8 +5,8 @@ case "$service" in systemd-ask-password) _arguments \ {-h,--help}'[Show this help]' \ - '--icon=[Icon name]' \ - '--timeout=[Timeout in sec]' \ + '--icon=[Icon name]:icon name:' \ + '--timeout=[Timeout in sec]:timeout (seconds):' \ '--no-tty[Ask question via agent even on TTY]' \ '--accept-cached[Accept cached passwords]' \ '--multiple[List multiple passwords if available]' @@ -15,7 +15,7 @@ case "$service" in _arguments \ {-h,--help}'[Show this help]' \ '--version[Show package version.]' \ - {-t+,--identifier=}'[Set syslog identifier.]' \ + {-t+,--identifier=}'[Set syslog identifier.]:syslog identifier:' \ {-p+,--priority=}'[Set priority value.]:value:({0..7})' \ '--level-prefix=[Control whether level prefix shall be parsed.]:boolean:(1 0)' \ ':Message' @@ -38,10 +38,10 @@ case "$service" in '(-m -p -i -t)-c[Order by CPU load]' \ '(-c -p -i -t)-m[Order by memory load]' \ '(-c -m -p -t)-i[Order by IO load]' \ - {-d+,--delay=}'[Specify delay]' \ - {-n+,--iterations=}'[Run for N iterations before exiting]' \ + {-d+,--delay=}'[Specify delay]:delay:' \ + {-n+,--iterations=}'[Run for N iterations before exiting]:number of iterations:' \ {-b,--batch}'[Run in batch mode, accepting no input]' \ - '--depth=[Maximum traversal depth]' + '--depth=[Maximum traversal depth]:maximum depth:' ;; systemd-detect-virt) _arguments \ @@ -61,8 +61,8 @@ case "$service" in {-h,--help}'[Show this help]' \ '--version[Show package version]' \ '--ready[Inform the init system about service start-up completion.]' \ - '--pid=[Inform the init system about the main PID of the daemon]' \ - '--status=[Send a free-form status string for the daemon to the init systemd]' \ + '--pid=[Inform the init system about the main PID of the daemon]:daemon main PID:_pids' \ + '--status=[Send a free-form status string for the daemon to the init systemd]:status string:' \ '--booted[Returns 0 if the system was booted up with systemd]' ;; systemd-tty-ask-password-agent) diff --git a/shell-completion/zsh/_systemd-inhibit b/shell-completion/zsh/_systemd-inhibit index 1ecb6dc7ee..1b3247b2cd 100644 --- a/shell-completion/zsh/_systemd-inhibit +++ b/shell-completion/zsh/_systemd-inhibit @@ -26,8 +26,8 @@ _arguments \ {-h,--help}'[Show this help]' \ '--version[Show package version]' \ '--what=[Operations to inhibit]:options:_inhibit_what' \ - '--who=[A descriptive string who is inhibiting]' \ - '--why=[A descriptive string why is being inhibited]' \ - '--mode=[One of block or delay]' \ + '--who=[A descriptive string who is inhibiting]:who is inhibiting:' \ + '--why=[A descriptive string why is being inhibited]:reason for the lock:' \ + '--mode=[One of block or delay]:lock mode:( block delay )' \ '--list[List active inhibitors]' \ '*:commands:_systemd_inhibit_command' -- cgit v1.2.3-54-g00ecf