#!/bin/bash # # finddeps - find packages that depend on a given depname # # License: Unspecified . "$(librelib messages)" match=$1 usage() { print 'Usage: %s ' "${0##*/}" print 'Find packages that depend on a given depname.' echo prose 'Run this script from the top-level directory of your ABS tree.' } if [[ -z $match ]]; then usage >&2 exit 1 fi if [[ $match = '-h' ]]; then usage exit 0 fi find . -type d | while read -r d; do if [[ -f "$d/PKGBUILD" ]]; then pkgname=() depends=() makedepends=() optdepends=() # shellcheck source=PKGBUILD.proto . "$d/PKGBUILD" for dep in "${depends[@]}"; do # lose the version comparator, if any depname=${dep%%[<>=]*} [[ $depname = "$match" ]] && echo "$d (depends)" done for dep in "${makedepends[@]}"; do # lose the version comparator, if any depname=${dep%%[<>=]*} [[ $depname = "$match" ]] && echo "$d (makedepends)" done for dep in "${optdepends[@]/:*}"; do # lose the version comaparator, if any depname=${dep%%[<>=]*} [[ $depname = "$match" ]] && echo "$d (optdepends)" done fi done