From 013cd389294cd6722d151fcaabbd3606a4e377e5 Mon Sep 17 00:00:00 2001 From: "martin f. krafft" Date: Fri, 14 Jun 2013 10:30:09 +0200 Subject: [PATCH 1/5] Remove shebang line The env-setup script is not intended to be run directly, so it does not need a shebang line, which might even create the wrong expectations. Signed-off-by: martin f. krafft --- hacking/env-setup | 1 - 1 file changed, 1 deletion(-) diff --git a/hacking/env-setup b/hacking/env-setup index 83f57e9cee..d02ea18dbb 100755 --- a/hacking/env-setup +++ b/hacking/env-setup @@ -1,4 +1,3 @@ -#!/bin/bash # usage: source env-setup [-q] # source hacking/env-setup [-q] # . ./env-setup [-q] From 4b9f8fc294c0602d8980ebda810446be67cd651f Mon Sep 17 00:00:00 2001 From: "martin f. krafft" Date: Fri, 14 Jun 2013 10:35:37 +0200 Subject: [PATCH 2/5] Replace external command with shell construct dirname/basename do not need an external process, shell variable expansion can be made to do the same a bit faster. Signed-off-by: martin f. krafft --- hacking/env-setup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hacking/env-setup b/hacking/env-setup index d02ea18dbb..b172d6892f 100755 --- a/hacking/env-setup +++ b/hacking/env-setup @@ -14,7 +14,7 @@ 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=`dirname "$FULL_PATH"` +ANSIBLE_HOME=${FULL_PATH%/*} PREFIX_PYTHONPATH="$ANSIBLE_HOME/lib" PREFIX_PATH="$ANSIBLE_HOME/bin" From 9f4988dbfd3878215a9095a0ffa9539a540f3738 Mon Sep 17 00:00:00 2001 From: "martin f. krafft" Date: Fri, 14 Jun 2013 10:38:09 +0200 Subject: [PATCH 3/5] Quote variables in shell script In case paths contain spaces, it's better to consistently quote variables, and to use $() instead of `` for external invocations. Signed-off-by: martin f. krafft --- hacking/env-setup | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/hacking/env-setup b/hacking/env-setup index b172d6892f..bcebd46250 100755 --- a/hacking/env-setup +++ b/hacking/env-setup @@ -7,23 +7,23 @@ # 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="${BASH_SOURCE%/*}";; (*) - HACKING_DIR=${0%/*};; + 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%/*} +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" -[[ $PYTHONPATH != ${PREFIX_PYTHONPATH}* ]] && export PYTHONPATH=$PREFIX_PYTHONPATH:$PYTHONPATH -[[ $PATH != ${PREFIX_PATH}* ]] && export PATH=$PREFIX_PATH:$PATH +[[ "$PYTHONPATH" != "${PREFIX_PYTHONPATH}"* ]] && export PYTHONPATH=$"PREFIX_PYTHONPATH:$PYTHONPATH" +[[ "$PATH" != "${PREFIX_PATH}"* ]] && export PATH="$PREFIX_PATH:$PATH" export ANSIBLE_LIBRARY="$ANSIBLE_HOME/library" -[[ $MANPATH != ${PREFIX_MANPATH}* ]] && export MANPATH=$PREFIX_MANPATH:$MANPATH +[[ "$MANPATH" != "${PREFIX_MANPATH}"* ]] && export MANPATH="$PREFIX_MANPATH:$MANPATH" # Print out values unless -q is set @@ -36,7 +36,7 @@ if [ $# -eq 0 -o "$1" != "-q" ] ; then echo "ANSIBLE_LIBRARY=$ANSIBLE_LIBRARY" echo "MANPATH=$MANPATH" echo "" - + echo "Remember, you may wish to specify your host file with -i" echo "" echo "Done!" From bbbc214ffbe7847d7d4023645122116dc1749c37 Mon Sep 17 00:00:00 2001 From: "martin f. krafft" Date: Tue, 18 Jun 2013 14:35:30 +0200 Subject: [PATCH 4/5] 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 --- hacking/env-setup | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/hacking/env-setup b/hacking/env-setup index bcebd46250..9bf3c49b31 100755 --- a/hacking/env-setup +++ b/hacking/env-setup @@ -20,14 +20,23 @@ PREFIX_PYTHONPATH="$ANSIBLE_HOME/lib" PREFIX_PATH="$ANSIBLE_HOME/bin" PREFIX_MANPATH="$ANSIBLE_HOME/docs/man" -[[ "$PYTHONPATH" != "${PREFIX_PYTHONPATH}"* ]] && export PYTHONPATH=$"PREFIX_PYTHONPATH:$PYTHONPATH" -[[ "$PATH" != "${PREFIX_PATH}"* ]] && export PATH="$PREFIX_PATH:$PATH" +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" -[[ "$MANPATH" != "${PREFIX_MANPATH}"* ]] && export MANPATH="$PREFIX_MANPATH:$MANPATH" # Print out values unless -q is set -if [ $# -eq 0 -o "$1" != "-q" ] ; then +if [ $# -eq 0 ] || [ "$1" != "-q" ] ; then echo "" echo "Setting up Ansible to run out of checkout..." echo "" From 3839dcd56c8b53c04ddf00c6bdab3278432f8bbf Mon Sep 17 00:00:00 2001 From: "martin f. krafft" Date: Sun, 23 Jun 2013 14:58:09 +0200 Subject: [PATCH 5/5] Remove extra $ character Signed-off-by: martin f. krafft --- hacking/env-setup | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hacking/env-setup b/hacking/env-setup index 9bf3c49b31..963333113b 100755 --- a/hacking/env-setup +++ b/hacking/env-setup @@ -22,15 +22,15 @@ PREFIX_MANPATH="$ANSIBLE_HOME/docs/man" case "$PYTHONPATH" in (*${PREFIX_PYTHONPATH}*) :;; - (*) export PYTHONPATH=$"$PREFIX_PYTHONPATH${PYTHONPATH:+:$PYTHONPATH}";; + (*) export PYTHONPATH="$PREFIX_PYTHONPATH${PYTHONPATH:+:$PYTHONPATH}";; esac case "$MANPATH" in (*${PREFIX_MANPATH}*) :;; - (*) export MANPATH=$"$PREFIX_MANPATH${MANPATH:+:$MANPATH}";; + (*) export MANPATH="$PREFIX_MANPATH${MANPATH:+:$MANPATH}";; esac case "$PATH" in (*${PREFIX_PATH}*) :;; - (*) export PATH=$"$PREFIX_PATH${PATH:+:$PATH}";; + (*) export PATH="$PREFIX_PATH${PATH:+:$PATH}";; esac export ANSIBLE_LIBRARY="$ANSIBLE_HOME/library"