#!/bin/sh -e . "$LIXROOT/lib/built.sh" . "$LIXROOT/lib/reverse.sh" . "$LIXROOT/lib/versionpasses.sh" dependencies() { # seen="" deps="$(echo "$1" | while read line; do eval "printf '%s\n' "\"$line\""" done)" echo "$deps" | while read line; do [ "$line" ] || continue; # eval inline expressions and convert all whitespace to single spaces. line="$(echo "$line" | tr -s '[:space:]' ' ')" dep="$(echo "$line" | cut -d' ' -f1)" depreq="$(echo "$line" | cut -d' ' -f2-)" depver="$(built "$dep" | reverse | while read ver; do [ "$ver" ] || continue; if [ "$(versionpasses "$dep" "$ver" "$depreq")" = "yes" ]; then echo "$ver" break fi done)" resolved="$(printf '%s\t%s\n' "$dep" "$depver")" echo "$seen" | grep -q "^$resolved\$" || echo "$resolved" seen="$resolved\n$seen" done }