#!/bin/sh
#
# [A] Tobias Hintze
# [A] Thomas "fake" Jakobi
#
# todo: support multiple packages as arguments and
# combine common uses/usedby's
[ -z "$1" -o "$1" == "-help" ] && {
cat <" ./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
|