# busctl(1) completion -*- shell-script -*- # # This file is part of systemd. # # Copyright 2013 Zbigniew Jędrzejewski-Szmek # Copyright 2014 Thomas H.P. Andersen # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # # systemd is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see <http://www.gnu.org/licenses/>. __contains_word () { local w word=$1; shift for w in "$@"; do [[ $w = "$word" ]] && return done } __get_machines() { local a b machinectl list --no-legend --no-pager | { while read a b; do echo " $a"; done; }; } __get_busnames() { local mode=$1 local a b busctl $mode list --no-legend --no-pager | { while read a b; do echo " $a"; done; }; } __get_objects() { local mode=$1 local busname=$2 local a b busctl $mode tree --list --no-legend --no-pager $busname | { while read a b; do echo " $a"; done; }; } __get_interfaces() { local mode=$1 local busname=$2 local path=$3 local a b busctl $mode introspect --list --no-legend --no-pager $busname $path | { while read a b c; do [[ "$b" == "interface" ]] && echo " $a"; done; }; } __get_members() { local mode=$1 local busname=$2 local path=$3 local interface=$4 local type=$5 local a b busctl $mode introspect --list --no-legend --no-pager $busname $path $interface | sed -e 's/^\.//' | { while read a b c; do [[ "$b" == "$type" ]] && echo " $a"; done; }; } __get_signature() { local mode=$1 local busname=$2 local path=$3 local interface=$4 local member=$5 local a b busctl $mode introspect --list --no-legend --no-pager $busname $path $interface | sed -e 's/^\.//' | { while read a b c d; do [[ "$a" == "$member" ]] && echo " \"$c\""; done; }; } _busctl() { local i verb comps mode local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} local -A OPTS=( [STANDALONE]='-h --help --version --no-pager --no-legend --system --show-machine --unique --acquired --activatable --list --quiet --verbose --expect-reply=no --auto-start=no --allow-interactive-authorization=yes --augment-creds=no' [ARG]='-H --host -M --machine --address --match --timeout' ) if __contains_word "--user" ${COMP_WORDS[*]}; then mode=--user else mode=--system fi if __contains_word "$prev" ${OPTS[ARG]}; then case $prev in --host|-H) comps=$(compgen -A hostname) ;; --machine|-M) comps=$( __get_machines ) esac COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) return 0 fi if [[ "$cur" = -* ]]; then COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") ) return 0 fi local -A VERBS=( [STANDALONE]='list help' [BUSNAME]='status monitor capture tree' [OBJECT]='introspect' [METHOD]='call' [PROPERTY_GET]='get-property' [PROPERTY_SET]='set-property' ) for ((i=0; i < COMP_CWORD; i++)); do if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} && ! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then verb=${COMP_WORDS[i]} break fi done n=$(($COMP_CWORD - $i)) if [[ -z $verb ]]; then comps=${VERBS[*]} elif __contains_word "$verb" ${VERBS[STANDALONE]}; then comps='' elif __contains_word "$verb" ${VERBS[BUSNAME]}; then comps=$( __get_busnames $mode) elif __contains_word "$verb" ${VERBS[OBJECT]}; then if [[ $n -eq 1 ]] ; then comps=$( __get_busnames $mode) elif [[ $n -eq 2 ]] ; then comps=$( __get_objects $mode ${COMP_WORDS[COMP_CWORD-1]}) elif [[ $n -eq 3 ]] ; then comps=$( __get_interfaces $mode ${COMP_WORDS[COMP_CWORD-2]} ${COMP_WORDS[COMP_CWORD-1]}) else comps='' fi elif __contains_word "$verb" ${VERBS[METHOD]}; then if [[ $n -eq 1 ]] ; then comps=$( __get_busnames $mode) elif [[ $n -eq 2 ]] ; then comps=$( __get_objects $mode ${COMP_WORDS[COMP_CWORD-1]}) elif [[ $n -eq 3 ]] ; then comps=$( __get_interfaces $mode ${COMP_WORDS[COMP_CWORD-2]} ${COMP_WORDS[COMP_CWORD-1]}) elif [[ $n -eq 4 ]] ; then comps=$( __get_members $mode ${COMP_WORDS[COMP_CWORD-3]} ${COMP_WORDS[COMP_CWORD-2]} ${COMP_WORDS[COMP_CWORD-1]} method) elif [[ $n -eq 5 ]] ; then comps=$( __get_signature $mode ${COMP_WORDS[COMP_CWORD-4]} ${COMP_WORDS[COMP_CWORD-3]} ${COMP_WORDS[COMP_CWORD-2]} ${COMP_WORDS[COMP_CWORD-1]}) else comps='' fi elif __contains_word "$verb" ${VERBS[PROPERTY_GET]}; then if [[ $n -eq 1 ]] ; then comps=$( __get_busnames $mode) elif [[ $n -eq 2 ]] ; then comps=$( __get_objects $mode ${COMP_WORDS[COMP_CWORD-1]}) elif [[ $n -eq 3 ]] ; then comps=$( __get_interfaces $mode ${COMP_WORDS[COMP_CWORD-2]} ${COMP_WORDS[COMP_CWORD-1]}) elif [[ $n -eq 4 ]] ; then comps=$( __get_members $mode ${COMP_WORDS[COMP_CWORD-3]} ${COMP_WORDS[COMP_CWORD-2]} ${COMP_WORDS[COMP_CWORD-1]} property) else comps='' fi elif __contains_word "$verb" ${VERBS[PROPERTY_SET]}; then if [[ $n -eq 1 ]] ; then comps=$( __get_busnames $mode) elif [[ $n -eq 2 ]] ; then comps=$( __get_objects $mode ${COMP_WORDS[COMP_CWORD-1]}) elif [[ $n -eq 3 ]] ; then comps=$( __get_interfaces $mode ${COMP_WORDS[COMP_CWORD-2]} ${COMP_WORDS[COMP_CWORD-1]}) elif [[ $n -eq 4 ]] ; then comps=$( __get_members $mode ${COMP_WORDS[COMP_CWORD-3]} ${COMP_WORDS[COMP_CWORD-2]} ${COMP_WORDS[COMP_CWORD-1]} property) elif [[ $n -eq 5 ]] ; then comps=$( __get_signature $mode ${COMP_WORDS[COMP_CWORD-4]} ${COMP_WORDS[COMP_CWORD-3]} ${COMP_WORDS[COMP_CWORD-2]} ${COMP_WORDS[COMP_CWORD-1]}) else comps='' fi fi COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) return 0 } complete -F _busctl busctl
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
addpart | File | 520 B | 0644 |
|
blkdiscard | File | 651 B | 0644 |
|
blkid | File | 1.47 KB | 0644 |
|
blockdev | File | 761 B | 0644 |
|
bootctl | File | 1.79 KB | 0644 |
|
busctl | File | 7.54 KB | 0644 |
|
cal | File | 404 B | 0644 |
|
cfdisk | File | 736 B | 0644 |
|
chcpu | File | 1.18 KB | 0644 |
|
chfn | File | 445 B | 0644 |
|
chrt | File | 800 B | 0644 |
|
chsh | File | 506 B | 0644 |
|
col | File | 460 B | 0644 |
|
colcrt | File | 484 B | 0644 |
|
colrm | File | 509 B | 0644 |
|
column | File | 725 B | 0644 |
|
coredumpctl | File | 3.34 KB | 0644 |
|
ctrlaltdel | File | 335 B | 0644 |
|
delpart | File | 649 B | 0644 |
|
dmesg | File | 1.03 KB | 0644 |
|
dracut | File | 3.5 KB | 0644 |
|
eject | File | 1.16 KB | 0644 |
|
fallocate | File | 593 B | 0644 |
|
fdformat | File | 414 B | 0644 |
|
fdisk | File | 1.05 KB | 0644 |
|
findmnt | File | 2.77 KB | 0644 |
|
firewall-cmd | File | 10.1 KB | 0644 |
|
flock | File | 860 B | 0644 |
|
fsck | File | 789 B | 0644 |
|
fsck.cramfs | File | 508 B | 0644 |
|
fsck.minix | File | 403 B | 0644 |
|
fsfreeze | File | 524 B | 0644 |
|
fstrim | File | 626 B | 0644 |
|
gapplication | File | 1.36 KB | 0644 |
|
gdbus | File | 935 B | 0644 |
|
getopt | File | 815 B | 0644 |
|
grub | File | 11.41 KB | 0644 |
|
gsettings | File | 2.76 KB | 0644 |
|
hexdump | File | 659 B | 0644 |
|
hostnamectl | File | 2.16 KB | 0644 |
|
hwclock | File | 937 B | 0644 |
|
ionice | File | 837 B | 0644 |
|
ipcrm | File | 1.39 KB | 0644 |
|
ipcs | File | 514 B | 0644 |
|
isosize | File | 426 B | 0644 |
|
journalctl | File | 5.4 KB | 0644 |
|
kernel-install | File | 1.75 KB | 0644 |
|
kmod | File | 3.16 KB | 0644 |
|
ldattach | File | 1.23 KB | 0644 |
|
localectl | File | 3.36 KB | 0644 |
|
logger | File | 1.13 KB | 0644 |
|
loginctl | File | 4.03 KB | 0644 |
|
look | File | 572 B | 0644 |
|
losetup | File | 1.47 KB | 0644 |
|
lsblk | File | 1.44 KB | 0644 |
|
lscpu | File | 829 B | 0644 |
|
lsinitrd | File | 2.05 KB | 0644 |
|
lslocks | File | 1002 B | 0644 |
|
machinectl | File | 3.12 KB | 0644 |
|
mcookie | File | 502 B | 0644 |
|
mkfs | File | 692 B | 0644 |
|
mkfs.cramfs | File | 821 B | 0644 |
|
mkfs.minix | File | 716 B | 0644 |
|
mkswap | File | 765 B | 0644 |
|
more | File | 528 B | 0644 |
|
mountpoint | File | 570 B | 0644 |
|
namei | File | 500 B | 0644 |
|
nmcli | File | 3.74 KB | 0644 |
|
nsenter | File | 955 B | 0644 |
|
partx | File | 1.07 KB | 0644 |
|
pivot_root | File | 387 B | 0644 |
|
prlimit | File | 1.16 KB | 0644 |
|
raw | File | 482 B | 0644 |
|
readprofile | File | 679 B | 0644 |
|
rename | File | 632 B | 0644 |
|
renice | File | 812 B | 0644 |
|
resizepart | File | 691 B | 0644 |
|
rev | File | 432 B | 0644 |
|
rpm | File | 9.77 KB | 0644 |
|
rtcwake | File | 841 B | 0644 |
|
runuser | File | 864 B | 0644 |
|
script | File | 667 B | 0644 |
|
scriptreplay | File | 592 B | 0644 |
|
semanage | File | 6.42 KB | 0644 |
|
setarch | File | 775 B | 0644 |
|
setpriv | File | 1.97 KB | 0644 |
|
setsebool | File | 1.77 KB | 0644 |
|
setsid | File | 433 B | 0644 |
|
setterm | File | 2.24 KB | 0644 |
|
sfdisk | File | 1.41 KB | 0644 |
|
su | File | 864 B | 0644 |
|
swaplabel | File | 635 B | 0644 |
|
swapon | File | 1.32 KB | 0644 |
|
systemctl | File | 12.29 KB | 0644 |
|
systemd-analyze | File | 3.9 KB | 0644 |
|
systemd-cat | File | 1.87 KB | 0644 |
|
systemd-cgls | File | 1.75 KB | 0644 |
|
systemd-cgtop | File | 1.32 KB | 0644 |
|
systemd-delta | File | 1.91 KB | 0644 |
|
systemd-detect-virt | File | 1.29 KB | 0644 |
|
systemd-nspawn | File | 5.74 KB | 0644 |
|
systemd-run | File | 3.51 KB | 0644 |
|
tailf | File | 530 B | 0644 |
|
taskset | File | 1.06 KB | 0644 |
|
tc | File | 26.41 KB | 0644 |
|
timedatectl | File | 2.52 KB | 0644 |
|
tuned-adm | File | 511 B | 0644 |
|
udevadm | File | 3.64 KB | 0644 |
|
ul | File | 655 B | 0644 |
|
unshare | File | 496 B | 0644 |
|
utmpdump | File | 466 B | 0644 |
|
uuidgen | File | 384 B | 0644 |
|
wdctl | File | 1.17 KB | 0644 |
|
whereis | File | 535 B | 0644 |
|
wipefs | File | 760 B | 0644 |
|
write | File | 494 B | 0644 |
|
yum | File | 11.23 KB | 0644 |
|
yummain.py | File | 11.23 KB | 0644 |
|
zramctl | File | 1.18 KB | 0644 |
|