#!/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