depends command

This is similar to the "apt-cache depends" command.
This commit is contained in:
Steven Penny 2014-05-20 00:51:37 -05:00
parent 4818a59e5a
commit a1cf729b51
1 changed files with 37 additions and 0 deletions

37
apt-cyg
View File

@ -47,6 +47,7 @@ function usage () {
' listfiles <packages> list files owned by packages'
' show <packages> Displays the package records for the named'
' packages'
' depends <patterns> performs recursive dependency listings'
' rdepends <patterns> Display packages which require X to be installed,'
' AKA show reverse dependencies'
' search <patterns> search for a filename from installed packages'
@ -174,6 +175,7 @@ do
install \
| list \
| listfiles \
| depends \
| rdepends \
| search \
| searchall \
@ -268,6 +270,41 @@ case "$command" in
head -c-1
;;
depends)
findworkspace
checkpackages
for pkg in $packages
do
awk '
$1 == "@" {
k = $2
}
$1 == "requires:" {
a[k] = $0
}
END {
p[1] = query
d[query] = 0
i = 1
while (length(p)) {
key = p[length(p)]
depth = d[key]
delete p[length(p)]
if (!s[key]++) {
printf "%*s%s\n", depth, "", key
split(a[key], r)
delete r[1]
for (req in r) {
p[length(p) + 1] = r[req]
d[r[req]] = depth + 1
}
}
}
}
' query="$pkg" setup.ini
done
;;
rdepends)
findworkspace
for pkg in $packages