#!/bin/bash

# Set project name accordingly.
# =============================
FILENAME=${0##*/}
if [ "$FILENAME" != "dbash" ]; then
  PROJECT_NAME=${FILENAME#docker-}
elif [ -n "$COMPOSE_PROJECT_NAME" ]; then
  PROJECT_NAME=$COMPOSE_PROJECT_NAME
else
  UUID=$(uuidgen | tr "[:upper:]" "[:lower:]")
  PROJECT_NAME=${UUID}
fi

# Get path to the executing script.
#=================================
pushd . > /dev/null
SCRIPT_PATH="${BASH_SOURCE[0]}";
if ([ -h "${SCRIPT_PATH}" ]) then
  while([ -h "${SCRIPT_PATH}" ]) do
    cd `dirname "$SCRIPT_PATH"`;
    SCRIPT_PATH=`readlink "${SCRIPT_PATH}"`;
  done
fi
cd `dirname ${SCRIPT_PATH}` > /dev/null
SCRIPT_PATH=`pwd`;
popd  > /dev/null


# Execute command with docker-compose.
#=====================================
COMPOSE_BINARY=$(which docker-compose)
export COMPOSE_PROJECT_NAME=${PROJECT_NAME}
export WORKSPACE=$(pwd)

case $1 in
  *)
    COMPOSE_PROJECT_NAME=${PROJECT_NAME} WORKSPACE=$(pwd) \
    $(which docker-compose) -f ${SCRIPT_PATH}/docker-compose.yml $@ || exit $?
    ;;
esac


# Add symlink if we are executing up.
# ===================================
if [ "$1" = "up" ] && [ $? -eq 0 ]; then
  ln -sf ${SCRIPT_PATH}/dbash docker-${PROJECT_NAME}
fi


# Remove symlink if we are executing down.
# ========================================
if [ "$1" = "down" ] && [ $? -eq 0 ]; then
  rm -f docker-${PROJECT_NAME}
fi
