diff options
Diffstat (limited to 'src/lib/librelib')
-rwxr-xr-x | src/lib/librelib | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/lib/librelib b/src/lib/librelib index 004c8b1..b3fb9c2 100755 --- a/src/lib/librelib +++ b/src/lib/librelib @@ -46,7 +46,7 @@ usage() { Hardcoding that path is the way of the dark side." echo prose 'By default, it looks for the files in `%s`, but this can be - changed with the environmental variable LIBRETOOLS_LIBDIR.' "$default_libdir" + changed with the environmental variable LIBRETOOLS_LIBRARY_PATH.' "$default_libdir" echo print "Example usage:" printf ' . $(%s conf)\n' "$cmd" @@ -65,19 +65,25 @@ main() { return 0 # $EXIT_SUCCESS fi - if [[ -z $LIBRETOOLS_LIBDIR ]]; then - export LIBRETOOLS_LIBDIR=$default_libdir + if [[ -z $LIBRETOOLS_LIBRARY_PATH ]]; then + export LIBRETOOLS_LIBRARY_PATH=$default_libdir fi lib=$1 lib=${lib#libre} lib=${lib%.sh} - for file in ${lib} libre${lib} ${lib}.sh libre${lib}.sh; do - if [[ -f "$LIBRETOOLS_LIBDIR/$file" ]]; then - printf '%s\n' "$LIBRETOOLS_LIBDIR/$file" - return 0 # $EXIT_SUCCESS - fi + local libdir_array + IFS=: read -r -a libdir_array <<<"$LIBRETOOLS_LIBRARY_PATH" + + local libdir + for libdir in "${libdir_array[@]}"; do + for file in ${lib} libre${lib} ${lib}.sh libre${lib}.sh; do + if [[ -f "$libdir/$file" ]]; then + printf '%s\n' "$libdir/$file" + return 0 # $EXIT_SUCCESS + fi + done done _l print '%s: could not find library: %s' "$cmd" "$lib" >&2 return 1 # $EXIT_FAILURE |