From ca6db7290cacee0d3b5ba836e6acea76ea314e50 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 26 May 2013 22:11:51 -0400 Subject: redo the library system; avoid hard-coded paths * install all library files to $(libexecdir)/libretools, instead of - $(bindir) - $(datadir)/libretools - $(datadir)/devtools * symlink the executable library files into $(bindir) * add the tool `librelib` * instead of ". /path/to/lib.sh", use ". $(librelib lib.sh)" * mark all libraries with shebangs of what options they support * move blacklist.sh to libreblacklist --- src/librelib | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100755 src/librelib (limited to 'src/librelib') diff --git a/src/librelib b/src/librelib new file mode 100755 index 0000000..22811db --- /dev/null +++ b/src/librelib @@ -0,0 +1,60 @@ +#!/bin/bash +# Copyright (c) 2013 by Luke Shumaker +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +default_libdir=/usr/lib/libretools + +cmd=${0##*/} +usage() { + print 'Usage: . $(%s LIBRARY)' "$cmd" + print "Finds a shell library file" + echo + print "While some libraries can be sourced just by their name because" + print "they are installed in PATH (like libremessages), some are not" + print "installed there (like conf.sh), so path must be given." + print "Hardcoding that path is the way of the dark side." + echo + print "By default, it looks for the files in '%s'," "$default_libdir" + print "but this can be changed with the environmental variable" + print "LIBRETOOLS_LIBDIR." + echo + print "Example usage:" + print ' . $(librelib conf.sh)' +} + +main() { + if [[ $# != 1 ]]; then + usage >&2 + return 2 + fi + + if [[ -z $LIBRETOOLS_LIBDIR ]]; then + export LIBRETOOLS_LIBDIR=$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; + fi + done + return 1 +} + +main "$@" -- cgit v1.2.3-2-g168b