mirror of
https://github.com/systemd/systemd.git
synced 2025-02-02 13:47:27 +03:00
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:
parent
1d3bc0177a
commit
2c12a402cb
@ -407,6 +407,8 @@ dist_zshcompletion_DATA = \
|
||||
shell-completion/zsh/_systemd-analyze \
|
||||
shell-completion/zsh/_systemd-run \
|
||||
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
|
||||
|
||||
|
3
TODO
3
TODO
@ -704,6 +704,9 @@ External:
|
||||
|
||||
* register catalog database signature as file magic
|
||||
|
||||
* zsh shell completion: <command> <verb> -<TAB> should complete options, but currently
|
||||
does not
|
||||
|
||||
Regularly:
|
||||
|
||||
* look for close() vs. close_nointr() vs. close_nointr_nofail()
|
||||
|
@ -89,7 +89,7 @@ _systemctl () {
|
||||
comps=$(compgen -A signal)
|
||||
;;
|
||||
--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)
|
||||
comps='loaded not-found stub
|
||||
|
@ -44,6 +44,7 @@ _systemd_analyze() {
|
||||
[CRITICAL_CHAIN]='critical-chain'
|
||||
[DOT]='dot'
|
||||
[LOG_LEVEL]='set-log-level'
|
||||
[VERIFY]='verify'
|
||||
)
|
||||
|
||||
_init_completion || return
|
||||
@ -99,6 +100,14 @@ _systemd_analyze() {
|
||||
comps='debug info notice warning err crit alert emerg'
|
||||
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
|
||||
|
||||
COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
|
||||
|
9
shell-completion/zsh/_sd_unit_files
Normal file
9
shell-completion/zsh/_sd_unit_files
Normal 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)'
|
||||
}
|
@ -261,7 +261,9 @@ for fun in set-environment unset-environment ; do
|
||||
}
|
||||
done
|
||||
|
||||
(( $+functions[_systemctl_link] )) || _systemctl_link() { _files }
|
||||
(( $+functions[_systemctl_link] )) || _systemctl_link() {
|
||||
_sd_unit_files
|
||||
}
|
||||
|
||||
# no systemctl completion for:
|
||||
# [STANDALONE]='daemon-reexec daemon-reload default
|
||||
@ -297,7 +299,7 @@ _unit_states() {
|
||||
|
||||
_unit_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[@]}"
|
||||
}
|
||||
|
||||
|
@ -6,6 +6,10 @@ _systemd_analyze_set-log-level() {
|
||||
_describe -t level 'logging level' _levels || compadd "$@"
|
||||
}
|
||||
|
||||
_systemd_analyze_verify() {
|
||||
_sd_unit_files
|
||||
}
|
||||
|
||||
_systemd_analyze_command(){
|
||||
local -a _systemd_analyze_cmds
|
||||
# Descriptions taken from systemd-analyze --help.
|
||||
@ -17,6 +21,7 @@ _systemd_analyze_command(){
|
||||
'dot:Dump dependency graph (in dot(1) format)'
|
||||
'dump:Dump server status'
|
||||
'set-log-level:Set systemd log threshold'
|
||||
'verify:Check unit files for correctness'
|
||||
)
|
||||
|
||||
if (( CURRENT == 1 )); then
|
||||
@ -38,7 +43,12 @@ _systemd_analyze_command(){
|
||||
|
||||
_arguments \
|
||||
{-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]' \
|
||||
'--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'
|
||||
|
Loading…
x
Reference in New Issue
Block a user