Path: blob/main/Mk/Scripts/actual-package-depends.sh
16461 views
#!/bin/sh1# MAINTAINER: [email protected]23[ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_ACTUAL_PACKAGE_DEPENDS}" ] && set -x45if [ -z "${PKG_BIN}" ]; then6echo "PKG_BIN required in environment." >&27exit 18fi910resolv_symlink() {11local file tgt12file=${1}13if [ ! -L ${file} ] ; then14echo ${file}15return16fi1718tgt=$(readlink ${file})19case $tgt in20/*)21echo $tgt22return23;;24esac2526file=${file%/*}/${tgt}27absolute_path ${file}28}2930absolute_path() {31local file myifs target32file=$13334myifs=${IFS}35IFS='/'36set -- ${file}37IFS=${myifs}38for el; do39case $el in40.) continue ;;41'') continue ;;42..) target=${target%/*} ;;43*) target="${target}/${el}" ;;44esac45done46echo ${target}47}4849find_dep() {50pattern=$151case ${pattern} in52*\>*|*\<*|*=*)53${PKG_BIN} info -Eg "${pattern}" 2>/dev/null ||54echo "actual-package-depends: dependency on ${pattern} not registered" >&255return56;;57/*)58searchfile=$pattern59;;60*)61searchfile=$(/usr/bin/which ${pattern} 2>/dev/null)62;;63esac64if [ -n "${searchfile}" ]; then65${PKG_BIN} which -q ${searchfile} || ${PKG_BIN} which -q "$(resolv_symlink ${searchfile} 2>/dev/null)" ||66echo "actual-package-depends: dependency on ${searchfile} not registered (normal if it belongs to base)" >&267fi68}6970for lookup; do71${PKG_BIN} query "\"%n\": {origin: \"%o\", version: \"%v\"}" "$(find_dep ${lookup})" || :72done737475