pull/2/head
Hari Sekhon 7 years ago
commit 00c6a73d7e

@ -90,6 +90,57 @@ declare_if_inside_docker(){
fi fi
} }
docker_compose_path_version(){
local path="$1"
local dir_base="$2"
if [ -z "${DOCKER_SERVICE:-}" ]; then
echo "Error: \$DOCKER_SERVICE has not been set in environment yet, was check_docker_available() called first?"
exit 1
fi
set +e
local version="$(docker-compose exec "$DOCKER_SERVICE" ls "$path" -1 --color=no |
grep --color=no -- "$dir_base" |
tr -d '\r' |
tee /dev/stderr |
tail -n 1 |
sed "s/$dir_base//"
)"
set -e
if [ -z "$version" ]; then
echo "Error: failed to find docker compose path version from path $path for $dir_base!"
exit 1
fi
echo "$version"
}
docker_compose_version_test(){
local name="${1:-}"
local version="${2:-}"
if [ -z "$name" ]; then
"ERROR: missing first arg for name to docker_compose_version_test()"
exit 1
fi
if [ -z "$version" ]; then
"ERROR: missing second arg for version to docker_compose_version_test()"
exit 1
fi
if [ "$version" = "latest" ]; then
echo "latest version, fetching latest version from DockerHub master branch"
local version="$(dockerhub_latest_version "$name")"
echo "expecting version '$version'"
fi
hr
found_version="$(docker_compose_path_version / "$name"-)"
echo "found $name version $found_version"
hr
if [[ "$found_version" =~ $version* ]]; then
echo "$name docker version matches expected (found '$found_version', expected '$version')"
else
echo "Docker container version does not match expected version! (found '$found_version', expected '$version')"
exit 1
fi
}
docker_compose_port(){ docker_compose_port(){
local env_var="${1:-}" local env_var="${1:-}"
local name="${2:-}" local name="${2:-}"
@ -140,7 +191,7 @@ dockerhub_latest_version(){
echo "Error: no repo passed to dockerhub_latest_version for first arg" echo "Error: no repo passed to dockerhub_latest_version for first arg"
fi fi
set +e set +e
local version="$(curl -s "https://raw.githubusercontent.com/HariSekhon/Dockerfiles/master/$repo/Dockerfile" | awk -F= '/^ARG[[:space:]]+[A-Za-z_]+_VERSION=/ {print $2; exit}')" local version="$(curl -s "https://raw.githubusercontent.com/HariSekhon/Dockerfiles/master/$repo/Dockerfile" | awk -F= '/^ARG[[:space:]]+[A-Za-z0-9_]+_VERSION=/ {print $2; exit}')"
set -e set -e
if [ -z "$version" ]; then if [ -z "$version" ]; then
version='.*' version='.*'

@ -244,7 +244,7 @@ print_debug_env(){
#eval echo "export ${name}_PORT=$`echo ${name}_PORT`" #eval echo "export ${name}_PORT=$`echo ${name}_PORT`"
# instead of just name_PORT, find all PORTS in environment and print them # instead of just name_PORT, find all PORTS in environment and print them
# while read line to preserve CASSANDRA_PORTS=7199 9042 # while read line to preserve CASSANDRA_PORTS=7199 9042
env | egrep "^$name.*_" | grep -v -e 'DEFAULT$' -e 'VERSIONS$' | sort | while read env_var; do env | egrep "^$name.*_" | grep -v -e 'DEFAULT=' -e 'VERSIONS=' | sort | while read env_var; do
# sed here to quote export CASSANDRA_PORTS=7199 9042 => export CASSANDRA_PORTS="7199 9042" # sed here to quote export CASSANDRA_PORTS=7199 9042 => export CASSANDRA_PORTS="7199 9042"
eval echo "'export $env_var'" | sed 's/=/="/;s/$/"/' eval echo "'export $env_var'" | sed 's/=/="/;s/$/"/'
done done
@ -575,6 +575,11 @@ retry(){
else else
sleep_secs=1 sleep_secs=1
fi fi
local negate=""
if [ "$1" == '!' ]; then
negate=1
shift
fi
local cmd="${@:-}" local cmd="${@:-}"
if [ -z "$cmd" ]; then if [ -z "$cmd" ]; then
echo "ERROR: no command passed to retry() for \$3" echo "ERROR: no command passed to retry() for \$3"
@ -586,8 +591,13 @@ retry(){
while true; do while true; do
let try_number+=1 let try_number+=1
echo -n "try $try_number: " echo -n "try $try_number: "
if $cmd; then if [ -n "$negate" ]; then
timestamp "Succeeded after $SECONDS secs" if ! $cmd; then
timestamp "Command failed after $SECONDS secs"
break
fi
elif $cmd; then
timestamp "Command succeeded after $SECONDS secs"
break break
fi fi
if [ $SECONDS -gt $max_secs ]; then if [ $SECONDS -gt $max_secs ]; then

Loading…
Cancel
Save