Skip to content

Commit 56a7cec

Browse files
committed
refactor(rpm): adjust to util/xfunc primary command convention
1 parent aebb073 commit 56a7cec

File tree

1 file changed

+26
-11
lines changed

1 file changed

+26
-11
lines changed

completions/rpm

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44

55
# @since 2.12
66
_comp_xfunc_rpm_installed_packages()
7+
{
8+
_comp_cmd_rpm__installed_packages rpm
9+
}
10+
11+
_comp_cmd_rpm__installed_packages()
712
{
813
if [[ -r /var/log/rpmpkgs &&
914
/var/log/rpmpkgs -nt /var/lib/rpm/Packages ]]; then
@@ -38,13 +43,20 @@ _comp_cmd_rpm__macros()
3843
-- "$cur"))
3944
}
4045

46+
# shellcheck disable=SC2120
4147
_comp_cmd_rpm__buildarchs()
4248
{
4349
COMPREPLY=($(compgen -W "$("${1:-rpm}" --showrc | command sed -ne \
4450
's/^\s*compatible\s\s*build\s\s*archs\s*:\s*\(.*\)/\1/ p')" \
4551
-- "$cur"))
4652
}
4753

54+
# shellcheck disable=SC2120
55+
_comp_cmd_rpm__configdir()
56+
{
57+
cfgdir=$("${1:-rpm}" --eval '%{_rpmconfigdir}' 2>/dev/null)
58+
}
59+
4860
# rpm(8) completion
4961
#
5062
_comp_cmd_rpm()
@@ -147,7 +159,7 @@ _comp_cmd_rpm()
147159
_comp_compgen -- -W '"${opts[@]}" --allmatches --noscripts
148160
--notriggers --nodeps --test --repackage'
149161
else
150-
_comp_xfunc_rpm_installed_packages "$1"
162+
_comp_cmd_rpm__installed_packages "$1"
151163
fi
152164
;;
153165
-q* | --query)
@@ -190,7 +202,7 @@ _comp_cmd_rpm()
190202
--whatrecommends --whatrequires --whatsuggests
191203
--whatsupplements'
192204
elif [[ ${words[*]} != *\ -@(*([^ -])a|-all )* ]]; then
193-
_comp_xfunc_rpm_installed_packages "$1"
205+
_comp_cmd_rpm__installed_packages "$1"
194206
fi
195207
fi
196208
;;
@@ -216,14 +228,14 @@ _comp_cmd_rpm()
216228
elif [[ ${words[*]} == *\ -@(*([^ -])p|-package )* ]]; then
217229
_comp_compgen_filedir '[rs]pm'
218230
else
219-
_comp_xfunc_rpm_installed_packages "$1"
231+
_comp_cmd_rpm__installed_packages "$1"
220232
fi
221233
;;
222234
--resign | --addsign | --delsign)
223235
_comp_compgen_filedir '[rs]pm'
224236
;;
225237
--setperms | --setgids)
226-
_comp_xfunc_rpm_installed_packages "$1"
238+
_comp_cmd_rpm__installed_packages "$1"
227239
;;
228240
--import | --dbpath | --root)
229241
if [[ $cur == -* ]]; then
@@ -242,30 +254,33 @@ _comp_cmd_rpmbuild()
242254
local cur prev words cword was_split comp_args
243255
_comp_initialize -s -- "$@" || return
244256

245-
local rpm="${1%build*}"
246-
[[ $rpm == "$1" ]] || ! type "$rpm" &>/dev/null && rpm=
247-
248257
local noargopts='!(-*|*[rED]*)'
249-
# shellcheck disable=SC2254
258+
# shellcheck disable=SC2119,SC2254
250259
case $prev in
251260
--buildroot | --root | --dbpath | -${noargopts}r)
252261
_comp_compgen_filedir -d
253262
return
254263
;;
264+
--target | --eval | -${noargopts}E | --buildpolicy)
265+
# Prefer `rpm` in the same dir in utility functions
266+
local pathcmd
267+
pathcmd=$(type -P "$1") && local PATH=${pathcmd%/*}:$PATH
268+
;;&
255269
--target)
256-
_comp_cmd_rpm__buildarchs "$rpm"
270+
_comp_cmd_rpm__buildarchs
257271
return
258272
;;
259273
--eval | -${noargopts}E)
260-
_comp_cmd_rpm__macros "$rpm"
274+
_comp_cmd_rpm__macros
261275
return
262276
;;
263277
--macros | --rcfile)
264278
_comp_compgen_filedir
265279
return
266280
;;
267281
--buildpolicy)
268-
local cfgdir=$("$rpm" --eval '%{_rpmconfigdir}' 2>/dev/null)
282+
local cfgdir
283+
_comp_cmd_rpm__configdir
269284
if [[ $cfgdir ]]; then
270285
COMPREPLY=($(compgen -W "$(command ls "$cfgdir" 2>/dev/null |
271286
command sed -ne 's/^brp-//p')" -- "$cur"))

0 commit comments

Comments
 (0)