diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-07-21 21:11:56 -0400 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-07-21 22:33:51 -0400 |
commit | 2c12a402cb1e8277c271ced8dc9c06d20b8f6017 (patch) | |
tree | d753435ad96d1377820862987ab5831a0b98a46f | |
parent | 1d3bc0177a1952473bbe45b5bbb4e4e4f69a84f4 (diff) |
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.
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | TODO | 3 | ||||
-rw-r--r-- | shell-completion/bash/systemctl.in | 2 | ||||
-rw-r--r-- | shell-completion/bash/systemd-analyze | 9 | ||||
-rw-r--r-- | shell-completion/zsh/_sd_unit_files | 9 | ||||
-rw-r--r-- | shell-completion/zsh/_systemctl.in | 6 | ||||
-rw-r--r-- | shell-completion/zsh/_systemd-analyze | 12 |
7 files changed, 39 insertions, 4 deletions
diff --git a/Makefile.am b/Makefile.am index 1cb77b9fbf..55ed54d941 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 @@ -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() diff --git a/shell-completion/bash/systemctl.in b/shell-completion/bash/systemctl.in index 4beec4e13f..c5950cc752 100644 --- a/shell-completion/bash/systemctl.in +++ b/shell-completion/bash/systemctl.in @@ -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 diff --git a/shell-completion/bash/systemd-analyze b/shell-completion/bash/systemd-analyze index 5575bebfc4..77d1b542a2 100644 --- a/shell-completion/bash/systemd-analyze +++ b/shell-completion/bash/systemd-analyze @@ -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") ) diff --git a/shell-completion/zsh/_sd_unit_files b/shell-completion/zsh/_sd_unit_files new file mode 100644 index 0000000000..4778a0420d --- /dev/null +++ b/shell-completion/zsh/_sd_unit_files @@ -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)' +} diff --git a/shell-completion/zsh/_systemctl.in b/shell-completion/zsh/_systemctl.in index d9b8d1c0e3..d364d17dd9 100644 --- a/shell-completion/zsh/_systemctl.in +++ b/shell-completion/zsh/_systemctl.in @@ -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[@]}" } diff --git a/shell-completion/zsh/_systemd-analyze b/shell-completion/zsh/_systemd-analyze index 2eda5fe8a9..c101ad0fae 100644 --- a/shell-completion/zsh/_systemd-analyze +++ b/shell-completion/zsh/_systemd-analyze @@ -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' |