Skip to content

Commit 9920d16

Browse files
committed
get env-setup from ansible.
1 parent 6da2c71 commit 9920d16

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed

ansible-env-setup

+85
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# usage: source hacking/env-setup [-q]
2+
# modifies environment for running Ansible from checkout
3+
4+
# Default values for shell variables we use
5+
PYTHONPATH=${PYTHONPATH-""}
6+
PATH=${PATH-""}
7+
MANPATH=${MANPATH-""}
8+
PYTHON=$(which python 2>/dev/null || which python3 2>/dev/null)
9+
PYTHON_BIN=${PYTHON_BIN-$PYTHON}
10+
11+
verbosity=${1-info} # Defaults to `info' if unspecified
12+
13+
if [ "$verbosity" = -q ]; then
14+
verbosity=silent
15+
fi
16+
17+
# When run using source as directed, $0 gets set to bash, so we must use $BASH_SOURCE
18+
if [ -n "$BASH_SOURCE" ] ; then
19+
HACKING_DIR=$(dirname "$BASH_SOURCE")
20+
elif [ $(basename -- "$0") = "env-setup" ]; then
21+
HACKING_DIR=$(dirname "$0")
22+
# Works with ksh93 but not pdksh, have to eval to keep ash happy...
23+
elif [ -n "$KSH_VERSION" ] && echo $KSH_VERSION | grep -qv '^@(#)PD KSH'; then
24+
eval "HACKING_DIR=\$(dirname \"\${.sh.file}\")"
25+
else
26+
HACKING_DIR="$PWD/hacking"
27+
fi
28+
# The below is an alternative to readlink -fn which doesn't exist on OS X
29+
# Source: http://stackoverflow.com/a/1678636
30+
FULL_PATH=$($PYTHON_BIN -c "import os; print(os.path.realpath('$HACKING_DIR'))")
31+
export ANSIBLE_HOME="$(dirname "$FULL_PATH")"
32+
33+
PREFIX_PYTHONPATH="$ANSIBLE_HOME/lib"
34+
PREFIX_PATH="$ANSIBLE_HOME/bin:$ANSIBLE_HOME/test/runner"
35+
PREFIX_MANPATH="$ANSIBLE_HOME/docs/man"
36+
37+
expr "$PYTHONPATH" : "${PREFIX_PYTHONPATH}.*" > /dev/null || export PYTHONPATH="$PREFIX_PYTHONPATH:$PYTHONPATH"
38+
expr "$PATH" : "${PREFIX_PATH}.*" > /dev/null || export PATH="$PREFIX_PATH:$PATH"
39+
expr "$MANPATH" : "${PREFIX_MANPATH}.*" > /dev/null || export MANPATH="$PREFIX_MANPATH:$MANPATH"
40+
41+
#
42+
# Generate egg_info so that pkg_resources works
43+
#
44+
45+
# Do the work in a function so we don't repeat ourselves later
46+
gen_egg_info()
47+
{
48+
if [ -e "$PREFIX_PYTHONPATH/ansible.egg-info" ] ; then
49+
\rm -rf "$PREFIX_PYTHONPATH/ansible.egg-info"
50+
fi
51+
$PYTHON_BIN setup.py egg_info
52+
}
53+
54+
if [ "$ANSIBLE_HOME" != "$PWD" ] ; then
55+
current_dir="$PWD"
56+
else
57+
current_dir="$ANSIBLE_HOME"
58+
fi
59+
(
60+
cd "$ANSIBLE_HOME"
61+
if [ "$verbosity" = silent ] ; then
62+
gen_egg_info > /dev/null 2>&1 &
63+
find . -type f -name "*.pyc" -exec rm -f {} \; > /dev/null 2>&1
64+
else
65+
gen_egg_info
66+
find . -type f -name "*.pyc" -exec rm -f {} \;
67+
fi
68+
cd "$current_dir"
69+
)
70+
71+
if [ "$verbosity" != silent ] ; then
72+
cat <<- EOF
73+
74+
Setting up Ansible to run out of checkout...
75+
76+
PATH=$PATH
77+
PYTHONPATH=$PYTHONPATH
78+
MANPATH=$MANPATH
79+
80+
Remember, you may wish to specify your host file with -i
81+
82+
Done!
83+
84+
EOF
85+
fi

0 commit comments

Comments
 (0)