ansible/hacking/env-setup
martin f. krafft bbbc214ffb Remove bashisms, replace with POSIX constructs
This replaces double conditional brackets with single ones and gets ris
of bashisms, so that the tool should be sourcable from any POSIX shell.

Constructs like [ $foo = "$bar"* ] yield filesystem-globbing behaviour
according to POSIX. A compliant way is to use case statements.

Signed-off-by: martin f. krafft <madduck@madduck.net>
2013-06-20 08:18:37 +02:00

53 lines
1.5 KiB
Text
Executable file

# usage: source env-setup [-q]
# source hacking/env-setup [-q]
# . ./env-setup [-q]
# . ./hacking/env-setup [q]
# modifies environment for running Ansible from checkout
# When run using source as directed, $0 gets set to bash, so we must use $BASH_SOURCE
case "$0" in
(bash)
HACKING_DIR="${BASH_SOURCE%/*}";;
(*)
HACKING_DIR="${0%/*}";;
esac
# The below is an alternative to readlink -fn which doesn't exist on OS X
# Source: http://stackoverflow.com/a/1678636
FULL_PATH=$(python -c "import os; print(os.path.realpath('$HACKING_DIR'))")
ANSIBLE_HOME="${FULL_PATH%/*}"
PREFIX_PYTHONPATH="$ANSIBLE_HOME/lib"
PREFIX_PATH="$ANSIBLE_HOME/bin"
PREFIX_MANPATH="$ANSIBLE_HOME/docs/man"
case "$PYTHONPATH" in
(*${PREFIX_PYTHONPATH}*) :;;
(*) export PYTHONPATH=$"$PREFIX_PYTHONPATH${PYTHONPATH:+:$PYTHONPATH}";;
esac
case "$MANPATH" in
(*${PREFIX_MANPATH}*) :;;
(*) export MANPATH=$"$PREFIX_MANPATH${MANPATH:+:$MANPATH}";;
esac
case "$PATH" in
(*${PREFIX_PATH}*) :;;
(*) export PATH=$"$PREFIX_PATH${PATH:+:$PATH}";;
esac
export ANSIBLE_LIBRARY="$ANSIBLE_HOME/library"
# Print out values unless -q is set
if [ $# -eq 0 ] || [ "$1" != "-q" ] ; then
echo ""
echo "Setting up Ansible to run out of checkout..."
echo ""
echo "PATH=$PATH"
echo "PYTHONPATH=$PYTHONPATH"
echo "ANSIBLE_LIBRARY=$ANSIBLE_LIBRARY"
echo "MANPATH=$MANPATH"
echo ""
echo "Remember, you may wish to specify your host file with -i"
echo ""
echo "Done!"
echo ""
fi