Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ports-kde
Path: blob/main/Mk/Scripts/actual-package-depends.sh
16461 views
1
#!/bin/sh
2
# MAINTAINER: [email protected]
3
4
[ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_ACTUAL_PACKAGE_DEPENDS}" ] && set -x
5
6
if [ -z "${PKG_BIN}" ]; then
7
echo "PKG_BIN required in environment." >&2
8
exit 1
9
fi
10
11
resolv_symlink() {
12
local file tgt
13
file=${1}
14
if [ ! -L ${file} ] ; then
15
echo ${file}
16
return
17
fi
18
19
tgt=$(readlink ${file})
20
case $tgt in
21
/*)
22
echo $tgt
23
return
24
;;
25
esac
26
27
file=${file%/*}/${tgt}
28
absolute_path ${file}
29
}
30
31
absolute_path() {
32
local file myifs target
33
file=$1
34
35
myifs=${IFS}
36
IFS='/'
37
set -- ${file}
38
IFS=${myifs}
39
for el; do
40
case $el in
41
.) continue ;;
42
'') continue ;;
43
..) target=${target%/*} ;;
44
*) target="${target}/${el}" ;;
45
esac
46
done
47
echo ${target}
48
}
49
50
find_dep() {
51
pattern=$1
52
case ${pattern} in
53
*\>*|*\<*|*=*)
54
${PKG_BIN} info -Eg "${pattern}" 2>/dev/null ||
55
echo "actual-package-depends: dependency on ${pattern} not registered" >&2
56
return
57
;;
58
/*)
59
searchfile=$pattern
60
;;
61
*)
62
searchfile=$(/usr/bin/which ${pattern} 2>/dev/null)
63
;;
64
esac
65
if [ -n "${searchfile}" ]; then
66
${PKG_BIN} which -q ${searchfile} || ${PKG_BIN} which -q "$(resolv_symlink ${searchfile} 2>/dev/null)" ||
67
echo "actual-package-depends: dependency on ${searchfile} not registered (normal if it belongs to base)" >&2
68
fi
69
}
70
71
for lookup; do
72
${PKG_BIN} query "\"%n\": {origin: \"%o\", version: \"%v\"}" "$(find_dep ${lookup})" || :
73
done
74
75