diff --git a/bin/dexec b/bin/dexec index 65d9687..1f0ec7e 100755 --- a/bin/dexec +++ b/bin/dexec @@ -2,7 +2,7 @@ denvexec() { # Überprüfen, ob die richtige Anzahl Argumente übergeben wurden - if [ $# -lt 2 ]; then + if [ $# -lt 1 ]; then echo "Verwendung: denvexec " return 1 fi @@ -10,14 +10,19 @@ denvexec() { 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 - + 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 @@ -33,28 +38,40 @@ dexec() { # convert first parameter to system-direcotry, concat the rest # Teile den String in zwei Teile auf, getrennt durch "-" - local part1="${$1%-*}" # before "-" e.g. auth / bee / etc - local part2="${$1##*-}" # after "-" e.g. backend / frontend - local SYSTEM_DIR="$part2/$part1" + 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 ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/../.." &> /dev/null && pwd ) + local DOT_ENV_PATH="${ENV_DIR}/systems/${SYSTEM_DIR}/.env" - echo "$SYSTEM_DIR" - echo "$ENV_DIR" - echo "$DOCKER_COMMAND" + 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 + 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 + 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 } \ No newline at end of file diff --git a/bin/script/foreachSystem b/bin/script/foreachSystem index a8b3ccb..52f9bcd 100755 --- a/bin/script/foreachSystem +++ b/bin/script/foreachSystem @@ -1,5 +1,9 @@ #!/bin/bash -source ../dexec + +COMMAND="$@" +ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/../.." &> /dev/null && pwd ) + +source ${ENV_DIR}/bin/dexec # Überprüfen, ob die richtige Anzahl Argumente übergeben wurden if [ $# -lt 1 ]; then @@ -7,15 +11,22 @@ if [ $# -lt 1 ]; then return 1 fi -local COMMAND="$@" -local ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/../.." &> /dev/null && pwd ) for SYSTEM in $ENV_DIR/systems/*/*/ ; do - local part1="${$1%/*}" # before "/" eg. backend / frontend - local part2="${$1##*/}" # after "/" eg. bee / auth / etc - local SYSTEM_CODE="$part2-$part1" - local DENV_COMMAND="dexec" + # Extrahiere den Teil nach "systems/" + relative_path="${SYSTEM#*/systems/}" - echo "$DENV_COMMAND $SYSTEM_CODE $COMMAND" - #$DENV_COMMAND $SYSTEM_CODE $COMMAND + # Entferne den abschließenden Schrägstrich + relative_path="${relative_path%/}" + + typePart="${relative_path%/*}" # before "/" eg. backend / frontend + systemPart="${relative_path##*/}" # after "/" eg. bee / auth / etc + SYSTEM_CODE="$systemPart-$typePart" + DENV_COMMAND="dexec" + + if [[ "$COMMAND" == "init" ]]; then + $ENV_DIR/systems/$typePart/$systemPart/bin/script/init + else + $DENV_COMMAND $SYSTEM_CODE $COMMAND + fi done diff --git a/build b/build index 4f129c9..b17aaaf 100755 --- a/build +++ b/build @@ -1,4 +1,10 @@ #!/bin/bash -./bin/script/exec build -./bin/script/foreachSystem build +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +source $SCRIPT_DIR/bin/denv +source $SCRIPT_DIR/bin/dexec +source $SCRIPT_DIR/bin/drun + +denvexec build +$SCRIPT_DIR/bin/script/foreachSystem build diff --git a/docker/docker-compose-mac.yml b/docker/docker-compose-mac.yml index b34894d..0ee476c 100644 --- a/docker/docker-compose-mac.yml +++ b/docker/docker-compose-mac.yml @@ -1,12 +1,12 @@ networks: - weedkeeper: - name: weedkeeper + template: + name: template services: traefik: image: traefik:v3.0 networks: - - weedkeeper + - template command: - "--providers.docker=true" - "--entrypoints.web.address=:80" @@ -24,4 +24,4 @@ services: - "./letsencrypt:/letsencrypt" - "/var/run/docker.sock:/var/run/docker.sock" labels: - - "traefik.http.routers.traefik.rule=Host(`traefik.weedkeeper.de`)" + - "traefik.http.routers.traefik.rule=Host(`traefik.template.de`)" diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index b34894d..0ee476c 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,12 +1,12 @@ networks: - weedkeeper: - name: weedkeeper + template: + name: template services: traefik: image: traefik:v3.0 networks: - - weedkeeper + - template command: - "--providers.docker=true" - "--entrypoints.web.address=:80" @@ -24,4 +24,4 @@ services: - "./letsencrypt:/letsencrypt" - "/var/run/docker.sock:/var/run/docker.sock" labels: - - "traefik.http.routers.traefik.rule=Host(`traefik.weedkeeper.de`)" + - "traefik.http.routers.traefik.rule=Host(`traefik.template.de`)" diff --git a/down b/down index ef738dc..44efb34 100755 --- a/down +++ b/down @@ -1,4 +1,10 @@ #!/bin/bash -./bin/script/exec down -./bin/script/foreachSystem down +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +source $SCRIPT_DIR/bin/denv +source $SCRIPT_DIR/bin/dexec +source $SCRIPT_DIR/bin/drun + +denvexec down +$SCRIPT_DIR/bin/script/foreachSystem down diff --git a/init b/init index 4523edf..369b19f 100755 --- a/init +++ b/init @@ -1,4 +1,10 @@ #!/bin/bash -./bin/script/exec init -./bin/script/foreachSystem init +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +source $SCRIPT_DIR/bin/denv +source $SCRIPT_DIR/bin/dexec +source $SCRIPT_DIR/bin/drun + +denvexec up -d +$SCRIPT_DIR/bin/script/foreachSystem init diff --git a/stop b/stop index 82d3ba7..079e0cc 100755 --- a/stop +++ b/stop @@ -1,4 +1,10 @@ #!/bin/bash -./bin/script/exec stop -./bin/script/foreachSystem stop +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +source $SCRIPT_DIR/bin/denv +source $SCRIPT_DIR/bin/dexec +source $SCRIPT_DIR/bin/drun + +denvexec stop +$SCRIPT_DIR/bin/script/foreachSystem stop diff --git a/up b/up index 088a747..a206eaf 100755 --- a/up +++ b/up @@ -1,8 +1,10 @@ #!/bin/bash -source bin/denv -source bin/dexec -source bin/drun +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +source $SCRIPT_DIR/bin/denv +source $SCRIPT_DIR/bin/dexec +source $SCRIPT_DIR/bin/drun denvexec up -d -./bin/script/foreachSystem up -d +$SCRIPT_DIR/bin/script/foreachSystem up -d