selinux/scripts/env_use_destdir
Christian Göttsche 2d2e872886 scripts: ignore unavailable interpreters
Skip running and setting environment variables for unavailable
interpreters in the env_use_destdir wrapper script to avoid output
like:

    $ ./scripts/env_use_destdir $DESTDIR/usr/sbin/getenforce
    ./scripts/env_use_destdir: 59: ruby: not found
    ./scripts/env_use_destdir: 59: ruby: not found
    Enforcing

Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
Acked-by: James Carter <jwcart2@gmail.com>
2023-11-15 08:37:36 -05:00

66 lines
2.3 KiB
Bash
Executable File

#!/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"
if [ -n "${PREFIX:-}" ] ; then
LD_LIBRARY_PATH="$DESTDIR$PREFIX/lib:$LD_LIBRARY_PATH"
fi
if [ -n "${LIBDIR:-}" ] ; then
LD_LIBRARY_PATH="$DESTDIR$LIBDIR:$LD_LIBRARY_PATH"
fi
if [ -n "${SHLIBDIR:-}" ] ; then
LD_LIBRARY_PATH="$DESTDIR$SHLIBDIR:$LD_LIBRARY_PATH"
fi
export PATH="$DESTDIR/usr/sbin:$DESTDIR/usr/bin:$DESTDIR/sbin:$DESTDIR/bin:$PATH"
if [ -n "${PREFIX:-}" ] ; then
PATH="$DESTDIR$PREFIX/sbin:$DESTDIR$PREFIX/bin:$LD_LIBRARY_PATH"
fi
if [ -n "${BINDIR:-}" ] ; then
PATH="$DESTDIR$BINDIR:$PATH"
fi
if [ -n "${SBINDIR:-}" ] ; then
PATH="$DESTDIR$SBINDIR:$PATH"
fi
if command -v "${PYTHON:-python3}" > /dev/null ; then
NEW_PYTHONPATH="$DESTDIR$(${PYTHON:-python3} -c "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '/usr', 'base': '/usr'}))"):$DESTDIR$(${PYTHON:-python3} -c "import sysconfig; print(sysconfig.get_path('purelib', vars={'platbase': '/usr', 'base': '/usr'}))")"
if [ -n "${PYTHONPATH:-}" ] ; then
# Prefix the PYTHONPATH with the new directories
export PYTHONPATH="$NEW_PYTHONPATH:$PYTHONPATH"
else
# Define PYTHONPATH
export PYTHONPATH="$NEW_PYTHONPATH"
fi
fi
# shellcheck disable=SC2155
if command -v "${RUBY:-ruby}" > /dev/null ; then
export RUBYLIB="$DESTDIR/$(${RUBY:-ruby} -e 'puts RbConfig::CONFIG["vendorlibdir"]'):$DESTDIR/$(${RUBY:-ruby} -e 'puts RbConfig::CONFIG["vendorarchdir"]')"
fi
# Run the command given on the command line
if [ $# -gt 0 ] ; then
exec "$@"
fi