mirror of
https://github.com/systemd/systemd.git
synced 2025-03-28 02:50:16 +03:00
bash-completion: --property support
Just bash.
This commit is contained in:
parent
f03dc7c0c5
commit
caffaf5859
@ -22,6 +22,15 @@ __systemctl() {
|
||||
systemctl $mode --full --no-legend "$@"
|
||||
}
|
||||
|
||||
__systemd_properties() {
|
||||
local mode=$1
|
||||
{ __systemctl $mode show;
|
||||
systemd --dump-configuration-items; } |
|
||||
while IFS='=' read -r key value; do
|
||||
[[ $value ]] && echo "$key"
|
||||
done
|
||||
}
|
||||
|
||||
__contains_word () {
|
||||
local word=$1; shift
|
||||
for w in $*; do [[ $w = $word ]] && return 0; done
|
||||
@ -67,6 +76,12 @@ _systemctl () {
|
||||
[ARG]='--host -H --kill-mode --kill-who --property -p --signal -s --type -t --root'
|
||||
)
|
||||
|
||||
if __contains_word "--user" ${COMP_WORDS[*]}; then
|
||||
mode=--user
|
||||
else
|
||||
mode=--system
|
||||
fi
|
||||
|
||||
if __contains_word "$prev" ${OPTS[ARG]}; then
|
||||
case $prev in
|
||||
--signal|-s)
|
||||
@ -89,7 +104,7 @@ _systemctl () {
|
||||
comps=$(compgen -A hostname)
|
||||
;;
|
||||
--property|-p)
|
||||
comps=''
|
||||
comps=$(__systemd_properties $mode)
|
||||
;;
|
||||
esac
|
||||
COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
|
||||
@ -101,12 +116,6 @@ _systemctl () {
|
||||
return 0
|
||||
fi
|
||||
|
||||
if __contains_word "--user" ${COMP_WORDS[*]}; then
|
||||
mode=--user
|
||||
else
|
||||
mode=--system
|
||||
fi
|
||||
|
||||
local -A VERBS=(
|
||||
[ALL_UNITS]='is-active is-failed is-enabled status show mask preset'
|
||||
[ENABLED_UNITS]='disable'
|
||||
|
Loading…
x
Reference in New Issue
Block a user