dev-env/bin/dexec
2024-08-24 19:44:42 +00:00

77 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
denvexec() {
# Überprüfen, ob die richtige Anzahl Argumente übergeben wurden
if [ $# -lt 1 ]; then
echo "Verwendung: denvexec <docker command>"
return 1
fi
local DOCKER_COMMAND="$@"
local ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/.." &> /dev/null && pwd )
echo ""
echo "$ENV_DIR: $DOCKER_COMMAND"
#MAC
if [[ "$OSTYPE" == "darwin"* ]]; then
docker compose -f "${ENV_DIR}/docker/docker-compose-mac.yml" $DOCKER_COMMAND
echo "done"
#LINUX
elif [[ "$OSTYPE" == "linux-gnu" ]]; then
docker compose -f "${ENV_DIR}/docker/docker-compose.yml" $DOCKER_COMMAND
echo "done"
else
echo "Dieses Skript wird auf deinem Gerät nicht unterstützt"
exit 1
fi
}
dexec() {
# Überprüfen, ob die richtige Anzahl Argumente übergeben wurden
if [ $# -lt 2 ]; then
echo "Verwendung: dexec <system> <docker command>"
return 1
fi
# convert first parameter to system-direcotry, concat the rest
# Teile den String in zwei Teile auf, getrennt durch "-"
local systemPart="${1%-*}" # before "-" e.g. auth / bee / etc
local typePart="${1##*-}" # after "-" e.g. backend / frontend
local SYSTEM_DIR="$typePart/$systemPart"
shift # removes first argument
local DOCKER_COMMAND="$@"
local ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/.." &> /dev/null && pwd )
local DOT_ENV_PATH="${ENV_DIR}/systems/${SYSTEM_DIR}/.env"
echo ""
echo "$SYSTEM_DIR: $DOCKER_COMMAND"
#SET ENV VARIABLES FROM .ENV
if [ -e "$DOT_ENV_PATH" ]; then
export $(grep -v '^#' "$DOT_ENV_PATH" | xargs)
fi
#MAC
if [[ "$OSTYPE" == "darwin"* ]]; then
docker compose -f "${ENV_DIR}/systems/${SYSTEM_DIR}/docker/docker-compose-mac.yml" $DOCKER_COMMAND
echo "done"
#LINUX
elif [[ "$OSTYPE" == "linux-gnu" ]]; then
docker compose -f "${ENV_DIR}/systems/${SYSTEM_DIR}/docker/docker-compose.yml" $DOCKER_COMMAND
echo "done"
else
echo "Dieses Skript wird auf deinem Gerät nicht unterstützt"
exit 1
fi
#UNSET ENV VARIABLES FROM .ENV
if [ -e "$DOT_ENV_PATH" ]; then
unset $(grep -v '^#' "$DOT_ENV_PATH" | sed -E 's/(.*)=.*/\1/' | xargs)
fi
}