diff options
Diffstat (limited to 'scripts/whodepends.sh')
-rwxr-xr-x | scripts/whodepends.sh | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/scripts/whodepends.sh b/scripts/whodepends.sh new file mode 100755 index 0000000..e0b6441 --- /dev/null +++ b/scripts/whodepends.sh @@ -0,0 +1,56 @@ +#!/bin/bash +# whodepends - show maintainers a package depends upon +# by Moshe Zadka <moshez@debian.org> and +# modified by Joshua Kwan <joshk@triplehelix.org> +# This script is in the public domain. + +set -e + +PROGNAME=${0##*/} + +usage() { + cat <<EOF +Usage: $PROGNAME [package] [package] ... [options] + Check which maintainers a particular package depends on. + $PROGNAME options: + --source, -s Show source packages instead of binary ones. + --help, -h Show this help screen. + --version Show version and copyright information. +EOF +} + +version() { + cat <<EOF +This is $PROGNAME, from the Debian devscripts package, version ###VERSION### +This code is by Moshe Zadka <moshez@debian.org>, and is in the public domain. +EOF +} + +if [ -z "$1" ]; then + usage + exit 1 +fi + +while [ -n "$1" ]; do + case "$1" in + -s | --source) source=true ;; + -h | --help) usage; exit 0 ;; + --version) version; exit 0 ;; + *) + echo "Dependent maintainers for $1:" + for package in $(apt-cache showpkg $1 | sed -n '/Reverse Depends:/,/Dependencies/p' | grep '^ '|sed 's/,.*//'); do + if [ $source ]; then + apt-cache showsrc $package | + awk '/^Maintainer:/ {maint=$0} /^Package:/ {pkg=$0} END {print maint, pkg}' | + sed 's/Maintainer: //;s/Package: //' + else + apt-cache show $package | + awk '/^Maintainer:/ {maint=$0} END {print maint, "'$package'"}' | + sed 's/Maintainer: //' + fi + done | sort -u | awk -F'>' '{ pack[$1]=pack[$1] $2 } END {for (val in pack) print val ">", "(" pack[val] ")"}' | sed 's/( /(/' + echo + ;; + esac + shift +done |