#!/bin/sh # # $NetBSD: register-dependencies,v 1.2 2020/12/02 10:22:39 wiz Exp $ # ###################################################################### # # NAME # register-dependencies -- register package dependencies # # SYNOPSIS # register-dependencies pkgname # # DESCRIPTION # register-dependencies registers a dependency relationship from # the named package pkgname and the packages passed in via # standard input. # # ENVIRONMENT # PKG_DBDIR # This is the package meta-data directory in which the # packages are registered. By default, this is ${PREFIX}/pkgdb . # ###################################################################### : ${AWK:=awk} : ${CP:=cp} : ${ECHO:=echo} : ${PKG_DBDIR:=${PREFIX}/pkgdb} : ${RM:=rm} : ${TEST:=test} : ${TOUCH:=touch} : ${TRUE:=true} PKGNAME="$1" while read pkg; do pkgdir="${PKG_DBDIR}/$pkg" if ${TEST} ! -d "$pkgdir"; then ${ECHO} 1>&2 "$pkg not found - dependency NOT registered" continue fi req="$pkgdir/+REQUIRED_BY" tmpreq="$pkgdir/+REQUIRED_BY.$$" ${TOUCH} $req ${AWK} -v PKGNAME="${PKGNAME}" \ 'BEGIN { found = 0 } $0 == PKGNAME { found = 1 } { print } END { if (!found) print PKGNAME }' $req > $tmpreq ${CP} -f $tmpreq $req; ${RM} -f $tmpreq ${ECHO} "${PKGNAME} requires installed package $pkg" done