#!/bin/bash pkgconfig=/usr/bin/pkg-config test -x $pkgconfig || { cat > /dev/null exit 0 } [ $# -ge 1 ] || { cat > /dev/null exit 0 } case $1 in -P|--provides) while read filename ; do case "${filename}" in *.pc) # Assume that this file doesn't contain useful information. if [[ "$(dirname ${filename})" =~ pkgconfig ]]; then pcfiles=${pcfiles}" ${filename}" PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$(dirname ${filename}) fi ;; esac done if [ -n "$pcfiles" ] then # Query the dependencies of the package. PKG_CONFIG_PATH=$PKG_CONFIG_PATH $pkgconfig --print-errors --print-provides $pcfiles | while read n r v ; do # We have a dependency. Make a note that we need the pkgconfig # tool for this package. test -z "$v" && test -n "$r" && echo "Error with pkgconfig($n)" >&2 && exit 1 echo "pkgconfig($n)" "$r" "$v" done test ${PIPESTATUS[0]} -ne 0 && echo "$pkgconfig returned an error" >&2 && exit 1 # The dependency on the pkgconfig package itself. fi ;; -R|--requires) while read filename ; do case "${filename}" in *.pc) if [[ "$(dirname ${filename})" =~ pkgconfig ]]; then pcfiles=${pcfiles}" ${filename}" PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$(dirname ${filename}) fi esac done if [ -n "$pcfiles" ] then PKG_CONFIG_PATH=$PKG_CONFIG_PATH $pkgconfig --print-errors --print-requires ${pcfiles} | while read n r v ; do test -z "$v" && test -n "$r" && echo "Error with pkgconfig($n)" >&2 && exit 1 echo "pkgconfig($n)" "$r" "$v" done test ${PIPESTATUS[0]} -ne 0 && echo "$pkgconfig returned an error" >&2 && exit 1 fi ;; esac exit 0