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

Richard W.M. Jones posted 2 patches 6 years ago
[PATCH 1/2] run.in: Add intelligent prepend function.
Posted by Richard W.M. Jones 6 years ago
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@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

Re: [PATCH 1/2] run.in: Add intelligent prepend function.
Posted by Daniel P. Berrangé 6 years ago
On Thu, Jan 16, 2020 at 05:15:41PM +0000, Richard W.M. Jones wrote:
> 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@redhat.com>
> ---
>  run.in | 20 +++++++++-----------
>  1 file changed, 9 insertions(+), 11 deletions(-)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

Re: [PATCH 1/2] run.in: Add intelligent prepend function.
Posted by Erik Skultety 6 years ago
On Thu, Jan 16, 2020 at 05:15:41PM +0000, Richard W.M. Jones wrote:
> 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

Very neat, thanks for linking the stackoverflow article :).

Reviewed-by: Erik Skultety <eskultet@redhat.com>