Skip to content

Commit d37b0af

Browse files
committed
refactor(dpkg,aptitude): add held package getter to dpkg, use it
1 parent 1930f81 commit d37b0af

File tree

2 files changed

+9
-15
lines changed

2 files changed

+9
-15
lines changed

completions/aptitude

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,5 @@
11
# Debian aptitude(1) completion -*- shell-script -*-
22

3-
# TODO: rename per API conventions, rework to use vars rather than outputting
4-
if _comp_have_command grep-status; then
5-
_comp_dpkg_hold_packages()
6-
{
7-
grep-status -P -e "^$1" -a -FStatus 'hold' -n -s Package
8-
}
9-
else
10-
_comp_dpkg_hold_packages()
11-
{
12-
command grep -B 2 'hold' /var/lib/dpkg/status |
13-
awk "/Package: $1/ { print \$2 }"
14-
}
15-
fi
16-
173
_comp_cmd_aptitude()
184
{
195
local cur prev words cword comp_args
@@ -41,7 +27,7 @@ _comp_cmd_aptitude()
4127
return
4228
;;
4329
unhold)
44-
COMPREPLY=($(_comp_dpkg_hold_packages "$cur"))
30+
_comp_xfunc dpkg held_packages
4531
return
4632
;;
4733
esac

completions/dpkg

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,14 @@ else
3030
}
3131
fi
3232

33+
# @since 2.12
34+
_comp_xfunc_dpkg_held_packages()
35+
{
36+
local pkgs=$(dpkg --get-selections ${cur:+"$cur}"} |
37+
awk '{for(i=2;i<=NF;i++){ if($i=="hold"){ print $1;break }}}')
38+
_comp_compgen -a -- -W '$pkgs'
39+
}
40+
3341
_comp_deprecate_func _comp_dpkg_installed_packages _comp_xfunc_dpkg_installed_packages
3442
_comp_deprecate_func _comp_dpkg_purgeable_packages _comp_xfunc_dpkg_purgeable_packages
3543

0 commit comments

Comments
 (0)