diff --git a/scripts/config_version.sh b/scripts/config_version.sh index bdbc511..9ab585f 100755 --- a/scripts/config_version.sh +++ b/scripts/config_version.sh @@ -1,7 +1,18 @@ #!/bin/sh +ENVIRONMENTPATH=$1 +# $ENVIRONMENTPATH may contain multiple colon-delimited locations. +# We need to pick the first one that contains $ENVIRONMENT. +IFS=":" +for CANDIDATEPATH in ${ENVIRONMENTPATH}; do + if [ -d "${CANDIDATEPATH}/${2}" ]; then + ENVIRONMENTPATH=$CANDIDATEPATH + break + fi +done + # Usage -if [ $# -ne 2 -o ! -d "$1" -o ! -d "$1/$2" ]; then +if [ $# -ne 2 -o ! -d "${ENVIRONMENTPATH}" -o ! -d "${ENVIRONMENTPATH}/$2" ]; then echo "usage: $0 " >&2 exit 1 fi @@ -14,19 +25,19 @@ ruby() { } # Determine how best to calculate a config_version -if [ -e $1/$2/.r10k-deploy.json ]; then +if [ -e ${ENVIRONMENTPATH}/$2/.r10k-deploy.json ]; then # The environment was deployed using r10k. We will calculate the config # version using the r10k data. - ruby $1/$2/scripts/config_version-r10k.rb $1 $2 + ruby ${ENVIRONMENTPATH}/$2/scripts/config_version-r10k.rb $1 $2 elif [ -e /opt/puppetlabs/server/pe_version ]; then # This is a Puppet Enterprise system and we can rely on the rugged ruby gem # being available. - ruby $1/$2/scripts/config_version-rugged.rb $1 $2 + ruby ${ENVIRONMENTPATH}/$2/scripts/config_version-rugged.rb $1 $2 elif type git >/dev/null; then # The git command is available. - git --git-dir $1/$2/.git rev-parse HEAD + git --git-dir ${ENVIRONMENTPATH}/$2/.git rev-parse HEAD else # Nothing else available; just use the date.