diff mbox series

[3/3] scripts: introduce env_use_destdir.sh helper

Message ID 20190120191933.21343-3-nicolas.iooss@m4x.org (mailing list archive)
State Accepted
Headers show
Series [1/3] Travis-CI: upgrade PyPy to 6.0 | expand

Commit Message

Nicolas Iooss Jan. 20, 2019, 7:19 p.m. UTC
Set-up environment variables in order to use DESTDIR in Python, Ruby,
etc. This makes testing Python scripts easier.

Signed-off-by: Nicolas Iooss <nicolas.iooss@m4x.org>
---
 .travis.yml             |  5 +----
 scripts/env_use_destdir | 36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 4 deletions(-)
 create mode 100755 scripts/env_use_destdir
diff mbox series

Patch

diff --git a/.travis.yml b/.travis.yml
index 19914f4c2823..7a9e73ce55db 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -129,10 +129,7 @@  script:
   - make all $EXPLICIT_MAKE_VARS -k
 
   # Set up environment variables for the tests
-  - export LD_LIBRARY_PATH="$DESTDIR/usr/lib:$DESTDIR/lib"
-  - export PATH="$DESTDIR/usr/sbin:$DESTDIR/usr/bin:$DESTDIR/sbin:$DESTDIR/bin:$PATH"
-  - export PYTHONPATH="$DESTDIR$($PYTHON -c "from distutils.sysconfig import *;print(get_python_lib(prefix='/usr'))")"
-  - export RUBYLIB="$DESTDIR/$($RUBY -e 'puts RbConfig::CONFIG["vendorlibdir"]'):$DESTDIR/$($RUBY -e 'puts RbConfig::CONFIG["vendorarchdir"]')"
+  - . ./scripts/env_use_destdir
 
   # Show variables (to help debugging issues)
   - echo "$LD_LIBRARY_PATH"
diff --git a/scripts/env_use_destdir b/scripts/env_use_destdir
new file mode 100755
index 000000000000..4fbfb8dec44f
--- /dev/null
+++ b/scripts/env_use_destdir
@@ -0,0 +1,36 @@ 
+#!/bin/sh
+# Set-up environment variables to run programs which are built in DESTDIR folder
+#
+# Usage example to use variables in the current shell:
+#   $ export DESTDIR=$HOME/selinux-destdir
+#   $ make install install-pywrap install-rubywrap
+#   $ . ./scripts/env_use_destdir
+#   $ make test
+#
+# Or to use variables in a subcommand, for example to run tests:
+#   $ export DESTDIR=$HOME/selinux-destdir
+#   $ make install install-pywrap install-rubywrap
+#   $ ./scripts/env_use_destdir secilc ...
+#   $ ./scripts/env_use_destdir make test
+
+if [ -z "${DESTDIR:-}" ] ; then
+    echo >&2 "Error: variable DESTDIR needs to be defined in order to use this script."
+    echo >&2 "Example:"
+    # shellcheck disable=SC2164
+    echo >&2 "    DESTDIR=$(cd "$(dirname -- "$0")/.." ; pwd)/DESTDIR . $0"
+    exit 1
+fi
+
+export LD_LIBRARY_PATH="$DESTDIR/usr/lib:$DESTDIR/lib"
+export PATH="$DESTDIR/usr/sbin:$DESTDIR/usr/bin:$DESTDIR/sbin:$DESTDIR/bin:$PATH"
+
+# shellcheck disable=SC2155
+export PYTHONPATH="$DESTDIR$(${PYTHON:-python} -c "from distutils.sysconfig import *;print(get_python_lib(prefix='/usr'))")"
+
+# shellcheck disable=SC2155
+export RUBYLIB="$DESTDIR/$(${RUBY:-ruby} -e 'puts RbConfig::CONFIG["vendorlibdir"]'):$DESTDIR/$(${RUBY:-ruby} -e 'puts RbConfig::CONFIG["vendorarchdir"]')"
+
+# Run the command given on the command line
+if [ $# -gt 0 ] ; then
+    exec "$@"
+fi