#!/usr/bin/env bash

export USER_ID=$(id -u)
export GROUP_ID=$(id -g)
export USER_NAME=$(id -un)
export GROUP_NAME=$(id -gn)
export DOCKER_DEVBOX_IP=$(ip addr show dev docker0 | grep -o "inet [0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" | grep -o "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*")
export HOST_IP=${HOST_IP-${DOCKER_DEVBOX_IP}}

export COMPOSE_PROJECT_DIR="$DOCKER_DEVBOX_DIR"

if [ -z ${COMPOSE_PROJECT_NAME+x} ]; then
    # If COMPOSE_PROJECT_NAME is not defined, build it from directory name.
    name=$(basename "${COMPOSE_PROJECT_DIR,,}")
    export COMPOSE_PROJECT_NAME="${name//[ _.-]/}"
fi

if [ -z ${COMPOSE_NETWORK_NAME+x} ]; then
    # If COMPOSE_NETWORK_NAME is not defined, build it from project name.
    export COMPOSE_NETWORK_NAME="$COMPOSE_PROJECT_NAME""_default"
fi

export DOCKER_VERSION=$(docker --version | sed -rn "s/Docker version (.*?), build .*/\1/p")
export DOCKER_COMPOSE_VERSION=$(docker-compose --version | sed -rn "s/docker-compose version (.*?), build .*/\1/p")

# Define DOCKER_DEVBOX_ENV to customize environment configuration files
export DOCKER_DEVBOX_ENV="${DOCKER_DEVBOX_ENV:-dev}"
export DOCKER_DEVBOX_ENV_LIST="${DOCKER_DEVBOX_ENV_LIST:-prod stage dev}" # Supported environments (symlinks)
