shell-completion: systemd-analyze verify, systemctl link

Some zsh completion helpers were not installed, so completion
was broken.

Add systemd-analyze verify. Make systemctl link complete only
unit names.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2014-07-21 21:11:56 -04:00
parent 1d3bc0177a
commit 2c12a402cb
7 changed files with 39 additions and 4 deletions

View File

@ -407,6 +407,8 @@ dist_zshcompletion_DATA = \
shell-completion/zsh/_systemd-analyze \ shell-completion/zsh/_systemd-analyze \
shell-completion/zsh/_systemd-run \ shell-completion/zsh/_systemd-run \
shell-completion/zsh/_sd_hosts_or_user_at_host \ shell-completion/zsh/_sd_hosts_or_user_at_host \
shell-completion/zsh/_sd_outputmodes \
shell-completion/zsh/_sd_unit_files \
shell-completion/zsh/_systemd-delta \ shell-completion/zsh/_systemd-delta \
shell-completion/zsh/_systemd shell-completion/zsh/_systemd

3
TODO
View File

@ -704,6 +704,9 @@ External:
* register catalog database signature as file magic * register catalog database signature as file magic
* zsh shell completion: <command> <verb> -<TAB> should complete options, but currently
does not
Regularly: Regularly:
* look for close() vs. close_nointr() vs. close_nointr_nofail() * look for close() vs. close_nointr() vs. close_nointr_nofail()

View File

@ -89,7 +89,7 @@ _systemctl () {
comps=$(compgen -A signal) comps=$(compgen -A signal)
;; ;;
--type|-t) --type|-t)
comps='automount device mount path service snapshot socket swap target timer' comps='automount busname device mount path service snapshot socket swap target timer'
;; ;;
--state) --state)
comps='loaded not-found stub comps='loaded not-found stub

View File

@ -44,6 +44,7 @@ _systemd_analyze() {
[CRITICAL_CHAIN]='critical-chain' [CRITICAL_CHAIN]='critical-chain'
[DOT]='dot' [DOT]='dot'
[LOG_LEVEL]='set-log-level' [LOG_LEVEL]='set-log-level'
[VERIFY]='verify'
) )
_init_completion || return _init_completion || return
@ -99,6 +100,14 @@ _systemd_analyze() {
comps='debug info notice warning err crit alert emerg' comps='debug info notice warning err crit alert emerg'
fi fi
elif __contains_word "$verb" ${VERBS[VERIFY]}; then
if [[ $cur = -* ]]; then
comps='--help --version --system --user --no-man'
else
comps=$( compgen -A file -- "$cur" )
compopt -o filenames
fi
fi fi
COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) COMPREPLY=( $(compgen -W '$comps' -- "$cur") )

View File

@ -0,0 +1,9 @@
#autoload
_sd_unit_files() {
local files expl
files=( '*:files:->files' )
_description files expl 'unit file'
_files "$expl[@]" -g '*.(automount|busname|device|mount|path|service|snapshot|socket|swap|target|timer)'
}

View File

@ -261,7 +261,9 @@ for fun in set-environment unset-environment ; do
} }
done done
(( $+functions[_systemctl_link] )) || _systemctl_link() { _files } (( $+functions[_systemctl_link] )) || _systemctl_link() {
_sd_unit_files
}
# no systemctl completion for: # no systemctl completion for:
# [STANDALONE]='daemon-reexec daemon-reload default # [STANDALONE]='daemon-reexec daemon-reload default
@ -297,7 +299,7 @@ _unit_states() {
_unit_types() { _unit_types() {
local -a _types local -a _types
_types=(automount device mount path service snapshot socket swap target timer) _types=(automount busname device mount path service snapshot socket swap target timer)
_values -s , "${_types[@]}" _values -s , "${_types[@]}"
} }

View File

@ -6,6 +6,10 @@ _systemd_analyze_set-log-level() {
_describe -t level 'logging level' _levels || compadd "$@" _describe -t level 'logging level' _levels || compadd "$@"
} }
_systemd_analyze_verify() {
_sd_unit_files
}
_systemd_analyze_command(){ _systemd_analyze_command(){
local -a _systemd_analyze_cmds local -a _systemd_analyze_cmds
# Descriptions taken from systemd-analyze --help. # Descriptions taken from systemd-analyze --help.
@ -17,6 +21,7 @@ _systemd_analyze_command(){
'dot:Dump dependency graph (in dot(1) format)' 'dot:Dump dependency graph (in dot(1) format)'
'dump:Dump server status' 'dump:Dump server status'
'set-log-level:Set systemd log threshold' 'set-log-level:Set systemd log threshold'
'verify:Check unit files for correctness'
) )
if (( CURRENT == 1 )); then if (( CURRENT == 1 )); then
@ -38,7 +43,12 @@ _systemd_analyze_command(){
_arguments \ _arguments \
{-h,--help}'[Show help text.]' \ {-h,--help}'[Show help text.]' \
'--user[Shows performance data of user sessions instead of the system manager.]' \ '--system[Operate on system systemd instance.]' \
'--user[Operate on user systemd instance.]' \
'--no-pager[Do not user pager.]' \
'--no-man[Do not check man pages.]' \
'--order[When generating graph for dot, show only order]' \ '--order[When generating graph for dot, show only order]' \
'--require[When generating graph for dot, show only requirement]' \ '--require[When generating graph for dot, show only requirement]' \
{-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \
{-M+,--machine=}'[Operate on local container]:machine' \
'*::systemd-analyze commands:_systemd_analyze_command' '*::systemd-analyze commands:_systemd_analyze_command'