4
4
5
5
# @since 2.12
6
6
_comp_xfunc_rpm_installed_packages ()
7
+ {
8
+ _comp_cmd_rpm__installed_packages rpm
9
+ }
10
+
11
+ _comp_cmd_rpm__installed_packages ()
7
12
{
8
13
if [[ -r /var/log/rpmpkgs &&
9
14
/var/log/rpmpkgs -nt /var/lib/rpm/Packages ]]; then
@@ -38,13 +43,20 @@ _comp_cmd_rpm__macros()
38
43
-- " $cur " ) )
39
44
}
40
45
46
+ # shellcheck disable=SC2120
41
47
_comp_cmd_rpm__buildarchs ()
42
48
{
43
49
COMPREPLY=($( compgen -W " $( " ${1:- rpm} " --showrc | command sed -ne \
44
50
' s/^\s*compatible\s\s*build\s\s*archs\s*:\s*\(.*\)/\1/ p' ) " \
45
51
-- " $cur " ) )
46
52
}
47
53
54
+ # shellcheck disable=SC2120
55
+ _comp_cmd_rpm__configdir ()
56
+ {
57
+ cfgdir=$( " ${1:- rpm} " --eval ' %{_rpmconfigdir}' 2> /dev/null)
58
+ }
59
+
48
60
# rpm(8) completion
49
61
#
50
62
_comp_cmd_rpm ()
@@ -147,7 +159,7 @@ _comp_cmd_rpm()
147
159
_comp_compgen -- -W ' "${opts[@]}" --allmatches --noscripts
148
160
--notriggers --nodeps --test --repackage'
149
161
else
150
- _comp_xfunc_rpm_installed_packages " $1 "
162
+ _comp_cmd_rpm__installed_packages " $1 "
151
163
fi
152
164
;;
153
165
-q* | --query)
@@ -190,7 +202,7 @@ _comp_cmd_rpm()
190
202
--whatrecommends --whatrequires --whatsuggests
191
203
--whatsupplements'
192
204
elif [[ ${words[*]} != * \ -@ (* ([^ -])a| -all )* ]]; then
193
- _comp_xfunc_rpm_installed_packages " $1 "
205
+ _comp_cmd_rpm__installed_packages " $1 "
194
206
fi
195
207
fi
196
208
;;
@@ -216,14 +228,14 @@ _comp_cmd_rpm()
216
228
elif [[ ${words[*]} == * \ -@ (* ([^ -])p| -package )* ]]; then
217
229
_comp_compgen_filedir ' [rs]pm'
218
230
else
219
- _comp_xfunc_rpm_installed_packages " $1 "
231
+ _comp_cmd_rpm__installed_packages " $1 "
220
232
fi
221
233
;;
222
234
--resign | --addsign | --delsign)
223
235
_comp_compgen_filedir ' [rs]pm'
224
236
;;
225
237
--setperms | --setgids)
226
- _comp_xfunc_rpm_installed_packages " $1 "
238
+ _comp_cmd_rpm__installed_packages " $1 "
227
239
;;
228
240
--import | --dbpath | --root)
229
241
if [[ $cur == -* ]]; then
@@ -242,30 +254,33 @@ _comp_cmd_rpmbuild()
242
254
local cur prev words cword was_split comp_args
243
255
_comp_initialize -s -- " $@ " || return
244
256
245
- local rpm=" ${1% build* } "
246
- [[ $rpm == " $1 " ]] || ! type " $rpm " & > /dev/null && rpm=
247
-
248
257
local noargopts=' !(-*|*[rED]*)'
249
- # shellcheck disable=SC2254
258
+ # shellcheck disable=SC2119, SC2254
250
259
case $prev in
251
260
--buildroot | --root | --dbpath | -${noargopts} r)
252
261
_comp_compgen_filedir -d
253
262
return
254
263
;;
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
+ ;;&
255
269
--target)
256
- _comp_cmd_rpm__buildarchs " $rpm "
270
+ _comp_cmd_rpm__buildarchs
257
271
return
258
272
;;
259
273
--eval | -${noargopts} E)
260
- _comp_cmd_rpm__macros " $rpm "
274
+ _comp_cmd_rpm__macros
261
275
return
262
276
;;
263
277
--macros | --rcfile)
264
278
_comp_compgen_filedir
265
279
return
266
280
;;
267
281
--buildpolicy)
268
- local cfgdir=$( " $rpm " --eval ' %{_rpmconfigdir}' 2> /dev/null)
282
+ local cfgdir
283
+ _comp_cmd_rpm__configdir
269
284
if [[ $cfgdir ]]; then
270
285
COMPREPLY=($( compgen -W " $( command ls " $cfgdir " 2> /dev/null |
271
286
command sed -ne ' s/^brp-//p' ) " -- " $cur " ) )
0 commit comments