|
|
@ -13,8 +13,9 @@ usage: $0 [ -usedby | -uses ] PKG [ SOURCE_TREE ] |
|
|
|
check \$SOURCE_TREE/scripts/dep_db.txt and print |
|
|
|
dependencies and dependants of given package. |
|
|
|
|
|
|
|
-usedby: show only packages that depend on this package |
|
|
|
-uses : show only packages this package depends on |
|
|
|
-usedby : show only packages that depend on this package |
|
|
|
-uses : show only packages this package depends on |
|
|
|
-missing: show only packages missing for this package |
|
|
|
|
|
|
|
EOF |
|
|
|
exit 1 |
|
|
@ -22,23 +23,31 @@ exit 1 |
|
|
|
|
|
|
|
uses=1 |
|
|
|
usedby=1 |
|
|
|
missing=1 |
|
|
|
|
|
|
|
while [ ${1:0:1} == "-" ] ; do |
|
|
|
case $1 in |
|
|
|
-usedby) |
|
|
|
uses=0 |
|
|
|
missing=0 |
|
|
|
shift |
|
|
|
;; |
|
|
|
-uses) |
|
|
|
usedby=0 |
|
|
|
missing=0 |
|
|
|
shift |
|
|
|
;; |
|
|
|
-missing) |
|
|
|
usedby=0 |
|
|
|
uses=0 |
|
|
|
shift |
|
|
|
;; |
|
|
|
esac |
|
|
|
done |
|
|
|
|
|
|
|
if [ $usedby == 0 -a $uses == 0 ] ; then usedby=1 ; uses=1 ; fi |
|
|
|
|
|
|
|
if [ $usedby == 0 -a $uses == 0 -a $missing == 0 ] ; then usedby=1 ; uses=1 ; missing=0 ; fi |
|
|
|
|
|
|
|
# auto-find sourcetree if none was given |
|
|
|
if [ -n "$2" ] ; then |
|
|
|
SOURCE_TREE=$2 |
|
|
|
if [ ! -f $SOURCE_TREE/scripts/dep_db.txt ] ; then |
|
|
@ -83,5 +92,37 @@ if [ $usedby == 1 ] ; then |
|
|
|
echo "packages depending on $1:" |
|
|
|
print_nice `grep "\<$1\>" ./scripts/dep_db.txt | cut -d: -f1` |
|
|
|
fi |
|
|
|
|
|
|
|
list_missing_pkgs() { |
|
|
|
MISSING_PKGS=""; |
|
|
|
for i in `grep "^$1: " ./scripts/dep_db.txt | cut -d" " -f4-` ; do |
|
|
|
[ $i == $1 -o $i == "x11" -o $i == "xfree86" ] && continue |
|
|
|
if [ ! -f "/var/adm/packages/$i" -a ! -f "/var/adm/packages/$i:dev" ] ; then |
|
|
|
MISSING_PKGS="$MISSING_PKGS $i" |
|
|
|
fi |
|
|
|
done |
|
|
|
echo $MISSING_PKGS |
|
|
|
} |
|
|
|
|
|
|
|
# recursive function |
|
|
|
show_missing_pkgs() { |
|
|
|
MISSING_I=`list_missing_pkgs $1`; |
|
|
|
[ -z "$MISSING_I" ] && return ; |
|
|
|
# already shown ? |
|
|
|
[ "${SHOWNLIST/ $1 /}" != "$SHOWNLIST" ] && continue; |
|
|
|
SHOWNLIST="${SHOWNLIST}$1 " |
|
|
|
echo |
|
|
|
echo "packages missing for $1:" |
|
|
|
print_nice $MISSING_I |
|
|
|
for i in $MISSING_I ; do |
|
|
|
[ -z "$i" ] && continue ; |
|
|
|
show_missing_pkgs $i |
|
|
|
done |
|
|
|
} |
|
|
|
|
|
|
|
if [ $missing == 1 ] ; then |
|
|
|
SHOWNLIST=" " |
|
|
|
show_missing_pkgs $1 |
|
|
|
fi |
|
|
|
echo |
|
|
|
|