#!/bin/sh
# $Id: vile-libdir-path,v 1.7 2023/01/01 18:00:11 tom Exp $
# Find the given vile helper-program, either in $PATH, or in a related
# lib-directory.  If the program is already in $PATH, echo the existing
# $PATH, but if it is found in a related lib-directory, prepend that to $PATH

failed() {
	echo "?? $*" >&2
	exit 1
}

HELPER=vile-manfilt
[ $# != 0 ] && HELPER="$1"

OK_BIN=no
OK_LIB=

ARCH="`arch 2>/dev/null`"
[ -n "$ARCH" ] || ARCH=.
SAVE="$IFS"
IFS=':'
for dir in ${VILE_LIBDIR_PATH:-$PATH}
do
	if [ -f "$dir"/"$HELPER" ]
	then
		OK_BIN=yes
		break
	elif [ -z "$OK_LIB" ]
	then
		[ -f "$dir/"vile ] || continue
		head=${dir%/*}
		for libs in \
			"$head"/lib \
			"$head"/lib[1-9]* \
			"$head"/lib/*vile \
			"$head"/lib[1-9]*/*vile \
			"$head"/lib/"$ARCH"*/vile
		do
			[ -d "$libs" ] || continue
			if test -f "$libs"/"$HELPER"
			then
				OK_LIB=$libs
			fi
		done
	fi
done
IFS="$SAVE"

if [ $OK_BIN = yes ]
then
	echo "$PATH"
elif [ -n "$OK_LIB" ]
then
	echo "$OK_LIB:$PATH"
else
	failed "cannot find $HELPER"
fi
