mirror of the now-defunct rocklinux.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
1.6 KiB

  1. #!/bin/sh
  2. #
  3. # [A] Tobias Hintze <th@rocklinux.org>
  4. # [A] Thomas "fake" Jakobi <fake@rapidnetworks.de>
  5. #
  6. # todo: support multiple packages as arguments and
  7. # combine common uses/usedby's
  8. [ -z "$1" -o "$1" == "-help" ] && {
  9. cat <<EOF
  10. usage: $0 [ -usedby | -uses ] PKG [ SOURCE_TREE ]
  11. check \$SOURCE_TREE/scripts/dep_db.txt and print
  12. dependencies and dependants of given package.
  13. -usedby: show only packages that depend on this package
  14. -uses : show only packages this package depends on
  15. EOF
  16. exit 1
  17. }
  18. uses=1
  19. usedby=1
  20. while [ ${1:0:1} == "-" ] ; do
  21. case $1 in
  22. -usedby)
  23. uses=0
  24. shift
  25. ;;
  26. -uses)
  27. usedby=0
  28. shift
  29. ;;
  30. esac
  31. done
  32. if [ $usedby == 0 -a $uses == 0 ] ; then usedby=1 ; uses=1 ; fi
  33. if [ -n "$2" ] ; then
  34. SOURCE_TREE=$2
  35. if [ ! -f $SOURCE_TREE/scripts/dep_db.txt ] ; then
  36. echo "no $SOURCE_TREE/scripts/dep_db.txt found."
  37. exit 1
  38. fi
  39. else
  40. if [ -f ./scripts/dep_db.txt ] ; then
  41. SOURCE_TREE=.
  42. else
  43. if [ -f /usr/src/rock-src/scripts/dep_db.txt ] ; then
  44. echo "using /usr/src/rock-src/scripts/dep_db.txt instead."
  45. SOURCE_TREE=/usr/src/rock-src
  46. else
  47. echo "no ./scripts/dep_db.txt found."
  48. exit 1
  49. fi
  50. fi
  51. fi
  52. cd $SOURCE_TREE
  53. function print_nice() {
  54. CNT=0
  55. for pkg in $*
  56. do
  57. CNT=$(( $CNT+1 ));
  58. printf "%-15s" ${pkg:0:14}
  59. if [ $CNT -gt 3 ] ; then printf "\n" ; CNT=0 ; fi
  60. done
  61. echo
  62. }
  63. if [ $uses == 1 ] ; then
  64. echo
  65. echo "$1 depends on:"
  66. print_nice `grep "^$1: " ./scripts/dep_db.txt | cut -d" " -f4-`
  67. fi
  68. if [ $usedby == 1 ] ; then
  69. echo
  70. echo "packages depending on $1:"
  71. print_nice `grep "\<$1\>" ./scripts/dep_db.txt | cut -d: -f1`
  72. fi
  73. echo