vorerst final version

This commit is contained in:
Flo 2024-08-24 19:44:42 +00:00
parent 661e0517d2
commit 5c9cf9b00b
9 changed files with 95 additions and 41 deletions

View File

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

View File

@ -1,5 +1,9 @@
#!/bin/bash #!/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 # Überprüfen, ob die richtige Anzahl Argumente übergeben wurden
if [ $# -lt 1 ]; then if [ $# -lt 1 ]; then
@ -7,15 +11,22 @@ if [ $# -lt 1 ]; then
return 1 return 1
fi fi
local COMMAND="$@"
local ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/../.." &> /dev/null && pwd )
for SYSTEM in $ENV_DIR/systems/*/*/ ; do for SYSTEM in $ENV_DIR/systems/*/*/ ; do
local part1="${$1%/*}" # before "/" eg. backend / frontend # Extrahiere den Teil nach "systems/"
local part2="${$1##*/}" # after "/" eg. bee / auth / etc relative_path="${SYSTEM#*/systems/}"
local SYSTEM_CODE="$part2-$part1"
local DENV_COMMAND="dexec"
echo "$DENV_COMMAND $SYSTEM_CODE $COMMAND" # Entferne den abschließenden Schrägstrich
#$DENV_COMMAND $SYSTEM_CODE $COMMAND 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 done

10
build
View File

@ -1,4 +1,10 @@
#!/bin/bash #!/bin/bash
./bin/script/exec build SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
./bin/script/foreachSystem build
source $SCRIPT_DIR/bin/denv
source $SCRIPT_DIR/bin/dexec
source $SCRIPT_DIR/bin/drun
denvexec build
$SCRIPT_DIR/bin/script/foreachSystem build

View File

@ -1,12 +1,12 @@
networks: networks:
weedkeeper: template:
name: weedkeeper name: template
services: services:
traefik: traefik:
image: traefik:v3.0 image: traefik:v3.0
networks: networks:
- weedkeeper - template
command: command:
- "--providers.docker=true" - "--providers.docker=true"
- "--entrypoints.web.address=:80" - "--entrypoints.web.address=:80"
@ -24,4 +24,4 @@ services:
- "./letsencrypt:/letsencrypt" - "./letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock" - "/var/run/docker.sock:/var/run/docker.sock"
labels: labels:
- "traefik.http.routers.traefik.rule=Host(`traefik.weedkeeper.de`)" - "traefik.http.routers.traefik.rule=Host(`traefik.template.de`)"

View File

@ -1,12 +1,12 @@
networks: networks:
weedkeeper: template:
name: weedkeeper name: template
services: services:
traefik: traefik:
image: traefik:v3.0 image: traefik:v3.0
networks: networks:
- weedkeeper - template
command: command:
- "--providers.docker=true" - "--providers.docker=true"
- "--entrypoints.web.address=:80" - "--entrypoints.web.address=:80"
@ -24,4 +24,4 @@ services:
- "./letsencrypt:/letsencrypt" - "./letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock" - "/var/run/docker.sock:/var/run/docker.sock"
labels: labels:
- "traefik.http.routers.traefik.rule=Host(`traefik.weedkeeper.de`)" - "traefik.http.routers.traefik.rule=Host(`traefik.template.de`)"

10
down
View File

@ -1,4 +1,10 @@
#!/bin/bash #!/bin/bash
./bin/script/exec down SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
./bin/script/foreachSystem down
source $SCRIPT_DIR/bin/denv
source $SCRIPT_DIR/bin/dexec
source $SCRIPT_DIR/bin/drun
denvexec down
$SCRIPT_DIR/bin/script/foreachSystem down

10
init
View File

@ -1,4 +1,10 @@
#!/bin/bash #!/bin/bash
./bin/script/exec init SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
./bin/script/foreachSystem init
source $SCRIPT_DIR/bin/denv
source $SCRIPT_DIR/bin/dexec
source $SCRIPT_DIR/bin/drun
denvexec up -d
$SCRIPT_DIR/bin/script/foreachSystem init

10
stop
View File

@ -1,4 +1,10 @@
#!/bin/bash #!/bin/bash
./bin/script/exec stop SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
./bin/script/foreachSystem stop
source $SCRIPT_DIR/bin/denv
source $SCRIPT_DIR/bin/dexec
source $SCRIPT_DIR/bin/drun
denvexec stop
$SCRIPT_DIR/bin/script/foreachSystem stop

10
up
View File

@ -1,8 +1,10 @@
#!/bin/bash #!/bin/bash
source bin/denv SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
source bin/dexec
source bin/drun source $SCRIPT_DIR/bin/denv
source $SCRIPT_DIR/bin/dexec
source $SCRIPT_DIR/bin/drun
denvexec up -d denvexec up -d
./bin/script/foreachSystem up -d $SCRIPT_DIR/bin/script/foreachSystem up -d