blob: edb6f538bec5c888b57261969f34f62539b3e337 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#!/bin/sh
# Pacman Dependency Tree
# does NOT handle group names -> unexpected results.
# Package names using aliases, like x-server, should work.
# Breaks on circular dependencies -> you better hit ctrl-c.
export LC_ALL=en_US
progname=`basename $0`
pacexec='pacman'
leafnull='None'
branch=""
vbranch="| "
vprune=" "
hbranch="+---"
_showdep () {
# Try to use specific pkg req
if $pacexec -Qi $1 &> /dev/null ; then
# Grab deps list|from "Depends"|Remove Tag \| specific version req's.
deplist=`$pacexec -Qi $1|grep Depends|sed 's/^.*: \|>[^ ]*//g;s/ $//'`
else # Oops! Failed on alias, try this...
deplist=`$pacexec -Qs $1 | sed '1!d;s/\(^.*\/\)\(.*\)\( .*$\)/\2/'`
fi
[ "x$deplist" = "x$leafnull" ] && return
while [ -n "$deplist" ]
do
set -- $deplist && echo "$branch$hbranch$1"
if [ $# -gt 1 ] ; then
branch=${branch}$vbranch
else
branch=${branch}$vprune
fi
_showdep $1
deplist=${*:2}
branch=${branch:0:${#branch}-${#vprune}}
done
}
branch=$vprune
for pkg in `$pacexec -Q $1 | sed 's/ .*//'`
do
echo $pkg
_showdep $pkg
done
unset _showdep && set --
exit 0
|