37 lines
1.1 KiB
Bash
37 lines
1.1 KiB
Bash
#!/bin/sh -e
|
|
|
|
#. "$LIXROOT/libs/reverse.sh"
|
|
|
|
# errors out if a dependency was not resolved or if the LAYERMAX is exceeded.
|
|
lowerlayers() { # <resolved dependencies> [<bootstrap directory>]
|
|
layers="$2"
|
|
layercount="0"
|
|
maxlayers=${LAYERMAX:-100}
|
|
|
|
layers="$(echo "$1" | reverse | while read line; do
|
|
[ "$line" ] || continue;
|
|
|
|
dep="$(echo "$line" | awk '{ print $1 }')"
|
|
ver="$(echo "$line" | awk '{ print $2 }')"
|
|
dir="$(lyr upperdir lix/$dep/$ver/fs)"
|
|
|
|
# only warn on missing dependencies if a bootstrap directory was
|
|
# provided. it's possible the dependency is in the bootstrap.
|
|
[ "$2" ] && logfn="wrn possible" || logfn="err"
|
|
|
|
[ "$ver" ] && [ -d "$dir" ] \
|
|
&& printf "$dir:" \
|
|
|| $logfn "missing dependency: $dep $ver"
|
|
|
|
layercount="$(expr $layercount + 1)"
|
|
[ "$layercount" -le "$maxlayers" ] \
|
|
|| err "overlayfs can't handle more than $maxlayers lower directories!"
|
|
|
|
done)$layers"
|
|
|
|
[ "$?" -eq 0 ] || exit $? # error codes weren't bubbling up... :/
|
|
|
|
# strip possible trailing colon and echo.
|
|
echo "${layers%:}"
|
|
}
|