summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2013-05-26 22:11:51 -0400
committerLuke Shumaker <LukeShu@sbcglobal.net>2013-05-26 22:11:51 -0400
commitca6db7290cacee0d3b5ba836e6acea76ea314e50 (patch)
tree7cf3e4eda33335fdcc245d41e75a3b1602485266 /src/lib
parentb159a370e2b1458c8c3817bdf3cabe2a630732e3 (diff)
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
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/Makefile10
-rw-r--r--src/lib/conf.sh1
-rwxr-xr-xsrc/lib/libreblacklist (renamed from src/lib/blacklist.sh)3
-rwxr-xr-xsrc/lib/libremessages70
4 files changed, 82 insertions, 2 deletions
diff --git a/src/lib/Makefile b/src/lib/Makefile
index 0c69ba3..e1068c1 100644
--- a/src/lib/Makefile
+++ b/src/lib/Makefile
@@ -1,2 +1,10 @@
-libre_datadir=$(datadir)/libretools
+libre_execdir=$(bindir)
+libre_datadir=$(libexecdir)/libretools
include ../../common.mk
+
+rootdir=$(shell sed -r 's|^/||;s|[^/]+|..|g'<<<$(bindir))
+
+$(DESTDIR)$(libre_execdir)/%: %
+ install -Dm755 '$<' '$(DESTDIR)$(libre_datadir)/$(@F)'
+ install -d '$(@D)'
+ ln -sf '$(rootdir)$(libre_datadir)/$(@F)' "$@"
diff --git a/src/lib/conf.sh b/src/lib/conf.sh
index 73dfca4..8e8610e 100644
--- a/src/lib/conf.sh
+++ b/src/lib/conf.sh
@@ -1,3 +1,4 @@
+#!/bin/bash -euE
#!/bin/bash
# Copyright (c) 2012-2013 by Luke Shumaker <lukeshu@sbcglobal.net>
#
diff --git a/src/lib/blacklist.sh b/src/lib/libreblacklist
index 664b5f3..2f73a06 100755
--- a/src/lib/blacklist.sh
+++ b/src/lib/libreblacklist
@@ -1,4 +1,5 @@
#!/bin/bash -euE
+#!/bin/bash
# Copyright (c) 2013 by Luke Shumaker <lukeshu@sbcglobal.net>
#
# This program is free software; you can redistribute it and/or modify
@@ -15,7 +16,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# make sure XDG_CACHE_HOME is set
-. /usr/share/libretools/conf.sh
+. $(librelib conf.sh)
# Usage: blacklist-normalize <$file
# Normalizes the syntax of the blacklist on stdin.
diff --git a/src/lib/libremessages b/src/lib/libremessages
new file mode 100755
index 0000000..c9b6b83
--- /dev/null
+++ b/src/lib/libremessages
@@ -0,0 +1,70 @@
+#!/bin/bash -euE
+#!/bin/bash
+# Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
+# Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
+# Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
+# Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
+# Copyright (c) 2006 by Alex Smith <alex@alex-smith.me.uk>
+# Copyright (c) 2006 by Andras Voroskoi <voroskoi@frugalware.org>
+# Copyright (c) 2006 by Miklos Vajna <vmiklos@frugalware.org>
+# Copyright (c) 2011 by Joshua Haase <hahj87@gmail.com>
+# Copyright (c) 2012-2013 by Luke Shumaker <lukeshu@sbcglobal.net>
+#
+# 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 <http://www.gnu.org/licenses/>.
+
+################################################################################
+# Inherit most functions from devtools #
+################################################################################
+
+. $(librelib common.sh)
+
+################################################################################
+# gettext initialization #
+################################################################################
+
+export TEXTDOMAIN='libretools'
+export TEXTDOMAINDIR='/usr/share/locale'
+
+################################################################################
+# Own functions #
+################################################################################
+
+# Usage: print fmt arg1 arg2...
+# Like printf, but gettext-aware, and prints a trailing newline
+print() {
+ local fmt=$1
+ shift
+ printf -- "$(gettext "$fmt")\n" "$@"
+}
+
+# Usage: term_title This will be the term title
+# Sets the terminal title
+term_title() {
+ local fmt=''
+ case "$TERM" in
+ screen|tmux) fmt='\ek%s\e\\';;
+ xterm*|rxvt*) fmt='\e]0;%s\a';;
+ esac
+ printf "$fmt" "$*"
+}
+
+################################################################################
+# Run one of the defined functions if invoked directly #
+################################################################################
+
+if [[ "${0##*/}" == libremessages ]]; then
+ _libremessages_cmd=$1
+ shift
+ "$_libremessages_cmd" "$@"
+fi