[PATCH 1/2] run.in: Add intelligent prepend function.

Richard W.M. Jones rjones at redhat.com
Thu Jan 16 17:15:41 UTC 2020


This has been used in libguestfs and libnbd for quite a while as it
makes the ./run script easier to read and write.

See also:
http://stackoverflow.com/a/9631350

Signed-off-by: Richard W.M. Jones <rjones at redhat.com>
---
 run.in | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/run.in b/run.in
index 8574f81463..3118f9a9a4 100644
--- a/run.in
+++ b/run.in
@@ -42,22 +42,20 @@
 #
 #----------------------------------------------------------------------
 
+# Function to intelligently prepend a path to an environment variable.
+# See http://stackoverflow.com/a/9631350
+prepend()
+{
+    eval $1="$2\${$1:+:\$$1}"
+}
+
 # Find this script.
 b=@abs_builddir@
 
-library_path="$b/src/.libs"
-if [ -z "$LD_LIBRARY_PATH" ]; then
-    LD_LIBRARY_PATH=$library_path
-else
-    LD_LIBRARY_PATH="$library_path:$LD_LIBRARY_PATH"
-fi
+prepend LD_LIBRARY_PATH "$b/src/.libs"
 export LD_LIBRARY_PATH
 
-if [ -z "$PKG_CONFIG_PATH" ]; then
-    PKG_CONFIG_PATH="$b/src"
-else
-    PKG_CONFIG_PATH="$b/src:$PKG_CONFIG_PATH"
-fi
+prepend PKG_CONFIG_PATH "$b/src"
 export PKG_CONFIG_PATH
 
 # Ensure that any 3rd party apps using libvirt.so from the build tree get
-- 
2.24.1




More information about the libvir-list mailing list