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() {
# Überprüfen, ob die richtige Anzahl Argumente übergeben wurden
if [ $# -lt 2 ]; then
if [ $# -lt 1 ]; then
echo "Verwendung: denvexec <docker command>"
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
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
}

View File

@ -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

10
build
View File

@ -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

View File

@ -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`)"

View File

@ -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`)"

10
down
View File

@ -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

10
init
View File

@ -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

10
stop
View File

@ -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

10
up
View File

@ -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