mirror of
https://github.com/systemd/systemd
synced 2024-09-06 00:41:36 +00:00
Escape unit names for the eval call in _call_program The value of the Id property is transformed back into a unit name usable by systemctl. system-systemd\x5cx2dcryptsetup.slice -> system-systemd\x2dcryptsetup.slice Also filter units by property via parameter expansion, not a for loop
This commit is contained in:
parent
cdc31c592a
commit
6c9414a700
|
@ -123,15 +123,11 @@ _systemctl_really_all_units()
|
|||
}
|
||||
|
||||
_filter_units_by_property() {
|
||||
local property=$1 value=$2 ; shift ; shift
|
||||
local -a units ; units=($*)
|
||||
local props
|
||||
for props in ${(ps:\n\n:)"$(_call_program units "$service $_sys_service_mgr show --no-pager --property="Id,$property" -- ${units} 2>/dev/null")"}; do
|
||||
props=(${(f)props})
|
||||
if [[ "${props[2]}" = "$property=$value" ]]; then
|
||||
echo -E - " ${props[1]#Id=}"
|
||||
fi
|
||||
done
|
||||
local property=$1 value=$2; shift 2
|
||||
local -a units; units=("${(q-)@}")
|
||||
local -A props
|
||||
props=(${(f)"$(_call_program units "$service $_sys_service_mgr show --no-pager --property=\"Id,$property\" -- ${units} 2>/dev/null")"})
|
||||
echo -E - "${(@g:o:)${(k@)props[(Re)$property=$value]}#Id=}"
|
||||
}
|
||||
|
||||
_systemctl_get_template_names() { echo -E - ${^${(M)${(f)"$(__systemctl list-unit-files)"}##*@.[^[:space:]]##}%%@.*}\@ }
|
||||
|
|
Loading…
Reference in a new issue