mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 00:14:32 +09:00
51 lines
1.9 KiB
Plaintext
51 lines
1.9 KiB
Plaintext
#compdef -value-,DBUS_SESSION_BUS_ADDRESS,-default- -value-,DBUS_SYSTEM_BUS_ADDRESS,-default-
|
|
|
|
local context state state_descr line
|
|
typeset -A val_args
|
|
|
|
_values -S: kind \
|
|
'unix[a unix domain socket]:unix properties:->unix' \
|
|
'tcp[a tcp socket]:tcp properties:->tcp' \
|
|
'unixexec[a process]:unixexec properties:->unixexec' \
|
|
'x-machine-unix[a container]:machine properties:->x-machine-unix'
|
|
|
|
_sd_bus_get_guid() {
|
|
local TYPE VALUE
|
|
local -a busname=(org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus)
|
|
|
|
_call_program -l dbus-guid busctl call $busname GetId |
|
|
while read TYPE VALUE; do
|
|
[[ $TYPE == 's' && -n $VALUE ]] && compadd "$@" - ${(Q)VALUE};
|
|
done
|
|
}
|
|
|
|
local expl ret
|
|
case $context in
|
|
unix)
|
|
_values -s, 'unix socket properties' \
|
|
'guid[bus guid]:bus guid:_sd_bus_get_guid -qS,' \
|
|
'(abstract)path[unix domain socket path]:path:_files -r, -g "*(=)"' \
|
|
'(path)abstract[unix domain socket path in the abstract namespace]:abstract path:_files -r, -P@ -g "*(=)"' \
|
|
'uid[unix uid]:uid:_numbers' \
|
|
'gid[unix gid]:gid:_numbers'
|
|
;;
|
|
tcp)
|
|
_values -s, 'unix socket properties' \
|
|
'guid[bus guid]:bus guid:_sd_bus_get_guid -qS,' \
|
|
'host[hostname]:hostname:_hosts -r,'\
|
|
'port[port]:port:_numbers' \
|
|
'family[address family]:address family:(ipv4 ipv6)'
|
|
;;
|
|
unixexec)
|
|
_values -s, 'unixexec properties' \
|
|
'guid[bus guid]:bus guid:_sd_bus_get_guid -qS,' \
|
|
'path[command path]:command path:_absolute_command_paths -r,'\
|
|
;;
|
|
x-machine-unix)
|
|
_values -s, 'machine properties' \
|
|
'guid[bus guid]:bus guid:_sd_bus_get_guid -qS,' \
|
|
'(pid)machine[machine]:machine:_call_function ret _sd_machines' \
|
|
'(machine)pid[pid]:pid:_pids'
|
|
;;
|
|
esac
|