From 5e1396f124b0c2201436b58d85f9427bd27798a1 Mon Sep 17 00:00:00 2001 From: Flo Date: Sat, 24 Aug 2024 18:07:06 +0000 Subject: [PATCH 01/10] initial changes for rehaul --- .idea/.gitignore | 8 ---- .idea/dev.iml | 16 -------- .idea/modules.xml | 8 ---- .idea/php.xml | 22 ---------- .idea/vcs.xml | 8 ---- bin/denv | 10 +++-- bin/dexec | 64 ++++++++++++++++++++++++++++++ bin/drun | 24 ++++++++++- bin/script/exec | 19 --------- bin/script/foreachSystem | 29 +++++++------- bin/script/prune | 10 ----- bin/script/pull | 6 +-- bin/script/setup | 54 ------------------------- bin/script/upgrade | 14 ------- bin/source | 7 ---- docker/docker-compose-mac.yml | 27 +++++++++++++ docker/install | 13 ++++++ python/capture-thermometer-data.py | 37 ----------------- setup | 30 ++++++++++++++ up | 8 +++- 20 files changed, 186 insertions(+), 228 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/dev.iml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/php.xml delete mode 100644 .idea/vcs.xml create mode 100755 bin/dexec delete mode 100755 bin/script/exec delete mode 100755 bin/script/prune delete mode 100755 bin/script/setup delete mode 100755 bin/script/upgrade delete mode 100755 bin/source create mode 100644 docker/docker-compose-mac.yml create mode 100755 docker/install delete mode 100644 python/capture-thermometer-data.py create mode 100755 setup diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 13566b8..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/dev.iml b/.idea/dev.iml deleted file mode 100644 index 3a10ba3..0000000 --- a/.idea/dev.iml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 8cc3e82..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml deleted file mode 100644 index 9ef07eb..0000000 --- a/.idea/php.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 7f13aa8..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/bin/denv b/bin/denv index 978286c..8486d4e 100755 --- a/bin/denv +++ b/bin/denv @@ -1,12 +1,16 @@ #!/bin/bash -ENVIRONMENT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )/../../ +ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/../../" &> /dev/null && pwd ) denv() { if [ ! -z $1 ] then - $ENVIRONMENT_DIR/$1 + if [[ "$1" == "setup" ]]; then + echo "SETUP IS ONLY ALLOWED ONCE AFTER CLOING THE ENVIRONMENT!!!" + exit 1 + fi + $ENV_DIR/$1 else - cd $ENVIRONMENT_DIR + cd $ENV_DIR fi } \ No newline at end of file diff --git a/bin/dexec b/bin/dexec new file mode 100755 index 0000000..977c417 --- /dev/null +++ b/bin/dexec @@ -0,0 +1,64 @@ +#!/bin/bash + +denvexec() { + # Überprüfen, ob die richtige Anzahl Argumente übergeben wurden + if [ $# -lt 2 ]; then + echo "Verwendung: denvexec " + return 1 + fi + + local DOCKER_COMMAND="$@" + local ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/.." &> /dev/null && pwd ) + + echo "$SYSTEM_DIR" + echo "$ENV_DIR" + echo "$DOCKER_COMMAND" + + #MAC + if [[ "$OSTYPE" == "darwin"* ]]; then + docker compose -f "${ENV_DIR}/docker/docker-compose-mac.yml" $COMMAND + + #LINUX + elif [[ "$OSTYPE" == "linux-gnu" ]]; then + docker compose -f "${ENV_DIR}/docker/docker-compose.yml" $COMMAND + + 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 " + return 1 + fi + + # 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" + shift # removes first argument + local DOCKER_COMMAND="$@" + + local ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/../.." &> /dev/null && pwd ) + + echo "$SYSTEM_DIR" + echo "$ENV_DIR" + echo "$DOCKER_COMMAND" + + #MAC + if [[ "$OSTYPE" == "darwin"* ]]; then + docker compose -f "${ENV_DIR}/systems/{$SYSTEM_DIR}/docker/docker-compose-mac.yml" $COMMAND + + #LINUX + elif [[ "$OSTYPE" == "linux-gnu" ]]; then + docker compose -f "${ENV_DIR}/systems/{$SYSTEM_DIR}/docker/docker-compose.yml" $COMMAND + + else + echo "Dieses Skript wird auf deinem Gerät nicht unterstützt" + exit 1 + fi +} \ No newline at end of file diff --git a/bin/drun b/bin/drun index bf43fef..bb5351d 100755 --- a/bin/drun +++ b/bin/drun @@ -3,7 +3,7 @@ drun() { # Überprüfen, ob die richtige Anzahl Argumente übergeben wurden if [ $# -lt 2 ]; then - echo "Verwendung: drun " + echo "Verwendung: drun " return 1 fi @@ -26,3 +26,25 @@ drun() { # Befehl im Container ausführen docker exec -it "$CONTAINER_ID" $COMMAND } + +_drun_completion() { + local cur prev opts + COMPREPLY=() # Array, das die Vorschläge enthalten wird + cur="${COMP_WORDS[COMP_CWORD]}" # Das aktuelle Wort, das vervollständigt werden soll + prev="${COMP_WORDS[COMP_CWORD-1]}" # Das vorherige Wort + + # Hier definierst du die Optionen oder Argumente, die `drun` akzeptiert + opts="start stop restart status" + + # Wenn die Optionen abhängig vom vorherigen Wort sind, kannst du hier Bedingungen hinzufügen + # Beispiel: + # if [[ ${prev} == "start" ]]; then + # opts="service1 service2 service3" + # fi + + # Die verfügbaren Optionen auf das aktuelle Eingabewort filtern + COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) + return 0 +} + +complete -F _drun_completion drun \ No newline at end of file diff --git a/bin/script/exec b/bin/script/exec deleted file mode 100755 index f12a32e..0000000 --- a/bin/script/exec +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -COMMAND="$@" -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - -echo "Execute ${COMMAND} in denv" - -#MAC -if [[ "$OSTYPE" == "darwin"* ]]; then - docker compose -f "${SCRIPT_DIR}/../../docker/docker-compose-mac.yml" $COMMAND - -#LINUX -elif [[ "$OSTYPE" == "linux-gnu" ]]; then - docker compose -f "${SCRIPT_DIR}/../../docker/docker-compose.yml" $COMMAND - -else - echo "Dieses Skript wird auf deinem Gerät nicht unterstützt" - exit 1 -fi diff --git a/bin/script/foreachSystem b/bin/script/foreachSystem index 96b9f45..67ef187 100755 --- a/bin/script/foreachSystem +++ b/bin/script/foreachSystem @@ -1,20 +1,21 @@ #!/bin/bash +source ../dexec -EXEC_DIR=$(pwd) -FILE_TO_EXECUTE=$1 - -if [ ! -z $1 ] -then - echo "Execute " $1 " in each system" -else - echo "Execute foreachSystem failed, because no parameter was provided" - exit +# Überprüfen, ob die richtige Anzahl Argumente übergeben wurden +if [ $# -lt 1 ]; then + echo "Verwendung: foreachSystem up -d" + return 1 fi +local COMMAND="$@" +local ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/../.." &> /dev/null && pwd ) -for SYSTEM in systems/*/*/ ; do - echo "executing ${FILE_TO_EXECUTE} in ${SYSTEM}" - cd $SYSTEM - ./bin/script/$FILE_TO_EXECUTE - cd $EXEC_DIR +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" + + echo "$DENV_COMMAND $SYSTEM_CODE $COMMAND" + $DENV_COMMAND $SYSTEM_CODE $COMMAND done diff --git a/bin/script/prune b/bin/script/prune deleted file mode 100755 index 4118be6..0000000 --- a/bin/script/prune +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -docker stop $(docker ps -aq) - -docker system prune -f - -docker network create homepage - -./pull -./bin/script/init diff --git a/bin/script/pull b/bin/script/pull index 8b6c798..884fda5 100755 --- a/bin/script/pull +++ b/bin/script/pull @@ -2,13 +2,9 @@ EXEC_DIR=$(pwd) -echo "Execute git pull in each system" - -#echo "denv" -#git pull +echo "Execute git pull in each system" for SYSTEM in $EXEC_DIR/systems/*/*/ ; do - echo $SYSTEM cd $SYSTEM git pull cd $EXEC_DIR diff --git a/bin/script/setup b/bin/script/setup deleted file mode 100755 index 239688b..0000000 --- a/bin/script/setup +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash - -echo $OSTYPE - -#MAC -if [[ "$OSTYPE" == "darwin"* ]]; then - home="$HOME" - -#LINUX -elif [[ "$OSTYPE" == "linux-gnu" ]]; then - home="$HOME" -else - echo "Dieses Skript wird nicht unter macOS oder Linux unterstützt." - exit 1 -fi - -script_path=$(pwd) -environment=$(basename $script_path) - -echo "source ~/$environment/bin/script/denv" >> ~/.profile -echo "source ~/$environment/bin/script/drun" >> ~/.profile -echo "source ~/$environment/bin/script/git" >> ~/.profile - -echo Running in $script_path -echo environment = $environment - -# $1 = frontend/backend -# $2 = repo name -fetch_repository() { - if [ ! -d "$1" ]; - then - echo "Create $1" - mkdir -p "$1" - fi - - cd $1 - - if [ ! -d "$2" ]; - then - gh repo clone TheFlawww/$2-$1 $2 - fi - - cd $script_path -} - - -#fetch all backends -fetch_repository backend weedkeeper - -#fetch all frontends -fetch_repository frontend weedkeeper - -# initialize -./bin/script/init diff --git a/bin/script/upgrade b/bin/script/upgrade deleted file mode 100755 index d58e39a..0000000 --- a/bin/script/upgrade +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - -$SCRIPT_DIR/pull -source $SCRIPT_DIR/../source - -drun weedkeeper-backend composer da -drun weedkeeper-backend composer install -drun weedkeeper-backend composer dmm -drun weedkeeper-backend composer console rbac:update - -drun weedkeeper-frontend npm i -drun weedkeeper-frontend npm run build diff --git a/bin/source b/bin/source deleted file mode 100755 index fee2747..0000000 --- a/bin/source +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - -source $SCRIPT_DIR/denv -source $SCRIPT_DIR/drun -source $SCRIPT_DIR/git diff --git a/docker/docker-compose-mac.yml b/docker/docker-compose-mac.yml new file mode 100644 index 0000000..b34894d --- /dev/null +++ b/docker/docker-compose-mac.yml @@ -0,0 +1,27 @@ +networks: + weedkeeper: + name: weedkeeper + +services: + traefik: + image: traefik:v3.0 + networks: + - weedkeeper + command: + - "--providers.docker=true" + - "--entrypoints.web.address=:80" + - "--entrypoints.web.http.redirections.entrypoint.to=websecure" + - "--entrypoints.web.http.redirections.entrypoint.scheme=https" + - "--entrypoints.websecure.address=:443" + - "--certificatesresolvers.le.acme.tlschallenge=true" + - "--certificatesresolvers.le.acme.email=florian_feistel@outlook.de" + - "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json" + ports: + - "80:80" + - "443:443" + - "8080:8080" + volumes: + - "./letsencrypt:/letsencrypt" + - "/var/run/docker.sock:/var/run/docker.sock" + labels: + - "traefik.http.routers.traefik.rule=Host(`traefik.weedkeeper.de`)" diff --git a/docker/install b/docker/install new file mode 100755 index 0000000..e7877af --- /dev/null +++ b/docker/install @@ -0,0 +1,13 @@ +sudo apt-get update +sudo apt-get install ca-certificates curl gnupg +sudo install -m 0755 -d /etc/apt/keyrings +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg +sudo chmod a+r /etc/apt/keyrings/docker.gpg +echo \ + "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ + "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +sudo apt-get update +sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y +sudo apt install docker-compose -y +sudo usermod -aG docker $USER diff --git a/python/capture-thermometer-data.py b/python/capture-thermometer-data.py deleted file mode 100644 index bca7d2c..0000000 --- a/python/capture-thermometer-data.py +++ /dev/null @@ -1,37 +0,0 @@ -import asyncio -import json -from datetime import datetime -from bleak import BleakScanner - -async def handle_discovery(device, advertisement_data): - if device.address == "DB:17:6C:7D:81:F6": - keys = list(advertisement_data.manufacturer_data.keys()) - humKey = keys[len(keys)-1] - battery = humKey & 0xFF - temperature = (humKey >> 8)/10.0 - if humKey < 32767: #If Key is bigger than a smallint, temperature is lower than one byte (256) - temperature = temperature + 25.6 - - data = {} - data['temp'] = temperature - data['battery'] = battery / 256.0; - data['humid'] = advertisement_data.manufacturer_data[humKey][1] - data['timestamp'] = datetime.now().strftime("%d.%m.%Y %H:%M:%S") - - jsonString = json.dumps(data) - with open("/home/flo/local-weedkeeper/systems/backend/weedkeeper/var/temperature.data", "a") as dataFile: - dataFile.write(jsonString+",\n") - #print(jsonString) - await scanner.stop() - -async def scan(): - global scanner - scanner = BleakScanner(handle_discovery) - await scanner.start() - await asyncio.sleep(10) - await scanner.stop() - -async def main(): - await scan() - -asyncio.run(main()) diff --git a/setup b/setup new file mode 100755 index 0000000..33a718e --- /dev/null +++ b/setup @@ -0,0 +1,30 @@ +#!/bin/bash + +# THIS SCRIPT NEEDS TO BE EXECUTED FIRST AFTER CLONING THE ENVIRONMENT AND SHALL NEVER BE EXECUTED AGAIN +# IT SETS UP THE ENVIRONMENT IN THE PROFILE TO ENABLE CORE COMMANDS LIKE denv drun dexec + +# MAC +if [[ "$OSTYPE" == "darwin"* ]]; then + home="$HOME" + +# LINUX +elif [[ "$OSTYPE" == "linux-gnu" ]]; then + home="$HOME" + +else + echo "Dieses Skript wird auf deinem Gerät nicht unterstützt" + exit 1 +fi + +ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +echo "Setup dev-env..." +echo "Adding sourcing of environment commands to .profile" +echo "" >> ~/.profile +echo "# denv setup" >> ~/.profile +echo "source $ENV_DIR/bin/denv" >> ~/.profile +echo "source $ENV_DIR/bin/drun" >> ~/.profile +echo "source $ENV_DIR/bin/dexec" >> ~/.profile +echo "source $ENV_DIR/bin/git" >> ~/.profile + +source ~/.profile \ No newline at end of file diff --git a/up b/up index 7f3abc8..088a747 100755 --- a/up +++ b/up @@ -1,4 +1,8 @@ #!/bin/bash -./bin/script/exec up -d -./bin/script/foreachSystem up +source bin/denv +source bin/dexec +source bin/drun + +denvexec up -d +./bin/script/foreachSystem up -d From 9350c0c95f21e487642370a472b53b98254ff997 Mon Sep 17 00:00:00 2001 From: Flo Date: Sat, 24 Aug 2024 18:45:05 +0000 Subject: [PATCH 02/10] changes --- .profile | 27 +++++++++++++++++++++++++++ bin/denv | 4 ++-- bin/dexec | 12 ++++-------- bin/script/foreachSystem | 2 +- setup | 7 +++++-- 5 files changed, 39 insertions(+), 13 deletions(-) create mode 100644 .profile diff --git a/.profile b/.profile new file mode 100644 index 0000000..77ab9ae --- /dev/null +++ b/.profile @@ -0,0 +1,27 @@ +# set GIT branch in bash +parse_git_branch() { + git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' +} +PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ ' + +# ssh setup +SSH_ENV="$HOME/.ssh/agent-environment" +function start_agent { + echo "Initialising new SSH agent..." + /usr/bin/ssh-agent | sed 's/^echo/#echo/' >"$SSH_ENV" + echo succeeded + chmod 600 "$SSH_ENV" + . "$SSH_ENV" >/dev/null + /usr/bin/ssh-add; + + ssh-add ~/.ssh/gitea-ssh +} + +if [ -f "$SSH_ENV" ]; then + . "$SSH_ENV" >/dev/null + ps -ef | grep $SSH_AGENT_PID | grep ssh-agent$ >/dev/null || { + start_agent + } +else + start_agent +fi diff --git a/bin/denv b/bin/denv index 8486d4e..675c2b0 100755 --- a/bin/denv +++ b/bin/denv @@ -1,13 +1,13 @@ #!/bin/bash -ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/../../" &> /dev/null && pwd ) +ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/../" &> /dev/null && pwd ) denv() { if [ ! -z $1 ] then if [[ "$1" == "setup" ]]; then echo "SETUP IS ONLY ALLOWED ONCE AFTER CLOING THE ENVIRONMENT!!!" - exit 1 + exit 0 fi $ENV_DIR/$1 else diff --git a/bin/dexec b/bin/dexec index 977c417..65d9687 100755 --- a/bin/dexec +++ b/bin/dexec @@ -10,17 +10,13 @@ denvexec() { local DOCKER_COMMAND="$@" local ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/.." &> /dev/null && pwd ) - echo "$SYSTEM_DIR" - echo "$ENV_DIR" - echo "$DOCKER_COMMAND" - #MAC if [[ "$OSTYPE" == "darwin"* ]]; then - docker compose -f "${ENV_DIR}/docker/docker-compose-mac.yml" $COMMAND + docker compose -f "${ENV_DIR}/docker/docker-compose-mac.yml" $DOCKER_COMMAND #LINUX elif [[ "$OSTYPE" == "linux-gnu" ]]; then - docker compose -f "${ENV_DIR}/docker/docker-compose.yml" $COMMAND + docker compose -f "${ENV_DIR}/docker/docker-compose.yml" $DOCKER_COMMAND else echo "Dieses Skript wird auf deinem Gerät nicht unterstützt" @@ -51,11 +47,11 @@ dexec() { #MAC if [[ "$OSTYPE" == "darwin"* ]]; then - docker compose -f "${ENV_DIR}/systems/{$SYSTEM_DIR}/docker/docker-compose-mac.yml" $COMMAND + docker compose -f "${ENV_DIR}/systems/{$SYSTEM_DIR}/docker/docker-compose-mac.yml" $DOCKER_COMMAND #LINUX elif [[ "$OSTYPE" == "linux-gnu" ]]; then - docker compose -f "${ENV_DIR}/systems/{$SYSTEM_DIR}/docker/docker-compose.yml" $COMMAND + docker compose -f "${ENV_DIR}/systems/{$SYSTEM_DIR}/docker/docker-compose.yml" $DOCKER_COMMAND else echo "Dieses Skript wird auf deinem Gerät nicht unterstützt" diff --git a/bin/script/foreachSystem b/bin/script/foreachSystem index 67ef187..a8b3ccb 100755 --- a/bin/script/foreachSystem +++ b/bin/script/foreachSystem @@ -17,5 +17,5 @@ for SYSTEM in $ENV_DIR/systems/*/*/ ; do local DENV_COMMAND="dexec" echo "$DENV_COMMAND $SYSTEM_CODE $COMMAND" - $DENV_COMMAND $SYSTEM_CODE $COMMAND + #$DENV_COMMAND $SYSTEM_CODE $COMMAND done diff --git a/setup b/setup index 33a718e..21d109b 100755 --- a/setup +++ b/setup @@ -19,12 +19,15 @@ fi ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) echo "Setup dev-env..." + echo "Adding sourcing of environment commands to .profile" echo "" >> ~/.profile -echo "# denv setup" >> ~/.profile +echo "# denv commands setup" >> ~/.profile echo "source $ENV_DIR/bin/denv" >> ~/.profile echo "source $ENV_DIR/bin/drun" >> ~/.profile echo "source $ENV_DIR/bin/dexec" >> ~/.profile echo "source $ENV_DIR/bin/git" >> ~/.profile -source ~/.profile \ No newline at end of file +echo "appending dev-env .profile to .profile" +echo "" >> ~/.profile +cat .profile >> ~/.profile \ No newline at end of file From 661e0517d293a4a64b540a808ea8ed22c6baee6e Mon Sep 17 00:00:00 2001 From: Flo Date: Sat, 24 Aug 2024 18:47:46 +0000 Subject: [PATCH 03/10] changes --- .profile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.profile b/.profile index 77ab9ae..b1ff785 100644 --- a/.profile +++ b/.profile @@ -14,7 +14,7 @@ function start_agent { . "$SSH_ENV" >/dev/null /usr/bin/ssh-add; - ssh-add ~/.ssh/gitea-ssh + ssh-add ~/.ssh/gitea_ssh } if [ -f "$SSH_ENV" ]; then From 5c9cf9b00b900711d4144f31d7fb9b71ca407666 Mon Sep 17 00:00:00 2001 From: Flo Date: Sat, 24 Aug 2024 19:44:42 +0000 Subject: [PATCH 04/10] vorerst final version --- bin/dexec | 41 +++++++++++++++++++++++++---------- bin/script/foreachSystem | 29 +++++++++++++++++-------- build | 10 +++++++-- docker/docker-compose-mac.yml | 8 +++---- docker/docker-compose.yml | 8 +++---- down | 10 +++++++-- init | 10 +++++++-- stop | 10 +++++++-- up | 10 +++++---- 9 files changed, 95 insertions(+), 41 deletions(-) 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 From f014c8e7d4be377ab3023c4372f7632a9b37ed8f Mon Sep 17 00:00:00 2001 From: Flo Date: Sat, 24 Aug 2024 20:44:39 +0000 Subject: [PATCH 05/10] intermediate commit --- docker/.gitignore | 2 ++ ...se-mac.yml => docker-compose-mac.yml.dist} | 0 ...er-compose.yml => docker-compose.yml.dist} | 0 init | 25 +++++++++++++++++++ 4 files changed, 27 insertions(+) rename docker/{docker-compose-mac.yml => docker-compose-mac.yml.dist} (100%) rename docker/{docker-compose.yml => docker-compose.yml.dist} (100%) diff --git a/docker/.gitignore b/docker/.gitignore index ec19369..87489b1 100644 --- a/docker/.gitignore +++ b/docker/.gitignore @@ -1 +1,3 @@ letsencrypt/* +docker-compose-mac.yml +docker-compose.yml \ No newline at end of file diff --git a/docker/docker-compose-mac.yml b/docker/docker-compose-mac.yml.dist similarity index 100% rename from docker/docker-compose-mac.yml rename to docker/docker-compose-mac.yml.dist diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml.dist similarity index 100% rename from docker/docker-compose.yml rename to docker/docker-compose.yml.dist diff --git a/init b/init index 369b19f..05f3623 100755 --- a/init +++ b/init @@ -6,5 +6,30 @@ source $SCRIPT_DIR/bin/denv source $SCRIPT_DIR/bin/dexec source $SCRIPT_DIR/bin/drun +EXIT=0 + +# Check docker-compose.yml file +if [ ! -f "$SCRIPT_DIR/docker/docker-compose.yml" ] +then + cp "$SCRIPT_DIR/docker/docker-compose.yml.dist" "$SCRIPT_DIR/docker/docker-compose.yml" + EXIT=1 +fi + +# Check docker-compose-mac.yml file +if [ ! -f "$SCRIPT_DIR/docker/docker-compose-mac.yml" ] +then + cp "$SCRIPT_DIR/docker/docker-compose-mac.yml.dist" "$SCRIPT_DIR/docker/docker-compose-mac.yml" + EXIT=1 +fi + + +if [ $EXIT -eq 1 ] +then + echo "docker-compose files created, please change variables and call init again" + exit 1 +fi + +exit 1 + denvexec up -d $SCRIPT_DIR/bin/script/foreachSystem init From 5e8abb9107668a73a885418576297d682e44ece5 Mon Sep 17 00:00:00 2001 From: Flo Date: Sat, 24 Aug 2024 21:04:18 +0000 Subject: [PATCH 06/10] abstracted docker-compose --- docker/docker-compose-mac.yml.dist | 2 +- docker/docker-compose.yml.dist | 2 +- init | 2 -- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/docker/docker-compose-mac.yml.dist b/docker/docker-compose-mac.yml.dist index 0ee476c..bf5e33a 100644 --- a/docker/docker-compose-mac.yml.dist +++ b/docker/docker-compose-mac.yml.dist @@ -24,4 +24,4 @@ services: - "./letsencrypt:/letsencrypt" - "/var/run/docker.sock:/var/run/docker.sock" labels: - - "traefik.http.routers.traefik.rule=Host(`traefik.template.de`)" + - "traefik.http.routers.traefik.rule=Host(`traefik.template.local`)" diff --git a/docker/docker-compose.yml.dist b/docker/docker-compose.yml.dist index 0ee476c..bf5e33a 100644 --- a/docker/docker-compose.yml.dist +++ b/docker/docker-compose.yml.dist @@ -24,4 +24,4 @@ services: - "./letsencrypt:/letsencrypt" - "/var/run/docker.sock:/var/run/docker.sock" labels: - - "traefik.http.routers.traefik.rule=Host(`traefik.template.de`)" + - "traefik.http.routers.traefik.rule=Host(`traefik.template.local`)" diff --git a/init b/init index 05f3623..4c67f44 100755 --- a/init +++ b/init @@ -29,7 +29,5 @@ then exit 1 fi -exit 1 - denvexec up -d $SCRIPT_DIR/bin/script/foreachSystem init From af6669ce6247d607b9437dcbf151da376991c413 Mon Sep 17 00:00:00 2001 From: Flo Date: Sat, 24 Aug 2024 21:19:24 +0000 Subject: [PATCH 07/10] changes --- down | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/down b/down index 44efb34..b8a9117 100755 --- a/down +++ b/down @@ -6,5 +6,5 @@ source $SCRIPT_DIR/bin/denv source $SCRIPT_DIR/bin/dexec source $SCRIPT_DIR/bin/drun -denvexec down $SCRIPT_DIR/bin/script/foreachSystem down +denvexec down \ No newline at end of file From 907713850d5ee1008305296aebaa7cae621cbc62 Mon Sep 17 00:00:00 2001 From: Flo Date: Sat, 24 Aug 2024 22:45:08 +0000 Subject: [PATCH 08/10] correction --- stop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stop b/stop index 079e0cc..1f53670 100755 --- a/stop +++ b/stop @@ -6,5 +6,5 @@ source $SCRIPT_DIR/bin/denv source $SCRIPT_DIR/bin/dexec source $SCRIPT_DIR/bin/drun -denvexec stop $SCRIPT_DIR/bin/script/foreachSystem stop +denvexec stop From 8c25db6bb294c3e4a3516490036bd5e86efa36a8 Mon Sep 17 00:00:00 2001 From: Flo Date: Sat, 14 Sep 2024 13:48:22 +0000 Subject: [PATCH 09/10] changes from fue 1 --- bin/dexec | 13 ++++--------- bin/drun | 23 +++-------------------- bin/script/foreachSystem | 4 ---- cron/.gitignore | 2 ++ setup | 2 +- 5 files changed, 10 insertions(+), 34 deletions(-) create mode 100644 cron/.gitignore diff --git a/bin/dexec b/bin/dexec index 1f0ec7e..6f54b8d 100755 --- a/bin/dexec +++ b/bin/dexec @@ -1,7 +1,6 @@ #!/bin/bash denvexec() { - # Überprüfen, ob die richtige Anzahl Argumente übergeben wurden if [ $# -lt 1 ]; then echo "Verwendung: denvexec " return 1 @@ -10,9 +9,8 @@ denvexec() { local DOCKER_COMMAND="$@" local ENV_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/.." &> /dev/null && pwd ) - echo "" - echo "$ENV_DIR: $DOCKER_COMMAND" + echo "Directory: ${ENV_DIR}" #MAC if [[ "$OSTYPE" == "darwin"* ]]; then @@ -30,14 +28,11 @@ denvexec() { } dexec() { - # Überprüfen, ob die richtige Anzahl Argumente übergeben wurden if [ $# -lt 2 ]; then echo "Verwendung: dexec " 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" @@ -45,10 +40,10 @@ dexec() { 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" + echo "Directory: ${ENV_DIR}/systems/${SYSTEM_DIR}" + + local DOT_ENV_PATH="${ENV_DIR}/systems/${SYSTEM_DIR}/.env" #SET ENV VARIABLES FROM .ENV if [ -e "$DOT_ENV_PATH" ]; then diff --git a/bin/drun b/bin/drun index bb5351d..e4b806d 100755 --- a/bin/drun +++ b/bin/drun @@ -1,48 +1,31 @@ #!/bin/bash drun() { - # Überprüfen, ob die richtige Anzahl Argumente übergeben wurden if [ $# -lt 2 ]; then echo "Verwendung: drun " return 1 fi - # Container-Namen extrahieren local CONTAINER_NAME="$1" shift # Das erste Argument entfernen - - # Den Rest der Argumente als Befehlszeichenfolge zusammenfügen local COMMAND="$@" - - # Container-ID mithilfe des Container-Namens finden local CONTAINER_ID=$(docker ps -qf "name=$CONTAINER_NAME-app") - # Überprüfen, ob der Container gefunden wurde if [ -z "$CONTAINER_ID" ]; then echo "Container '$CONTAINER_NAME' wurde nicht gefunden." return 1 fi - # Befehl im Container ausführen docker exec -it "$CONTAINER_ID" $COMMAND } _drun_completion() { local cur prev opts - COMPREPLY=() # Array, das die Vorschläge enthalten wird - cur="${COMP_WORDS[COMP_CWORD]}" # Das aktuelle Wort, das vervollständigt werden soll - prev="${COMP_WORDS[COMP_CWORD-1]}" # Das vorherige Wort - - # Hier definierst du die Optionen oder Argumente, die `drun` akzeptiert + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" opts="start stop restart status" - # Wenn die Optionen abhängig vom vorherigen Wort sind, kannst du hier Bedingungen hinzufügen - # Beispiel: - # if [[ ${prev} == "start" ]]; then - # opts="service1 service2 service3" - # fi - - # Die verfügbaren Optionen auf das aktuelle Eingabewort filtern COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) return 0 } diff --git a/bin/script/foreachSystem b/bin/script/foreachSystem index 52f9bcd..2cbff86 100755 --- a/bin/script/foreachSystem +++ b/bin/script/foreachSystem @@ -5,7 +5,6 @@ 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 echo "Verwendung: foreachSystem up -d" return 1 @@ -13,10 +12,7 @@ fi for SYSTEM in $ENV_DIR/systems/*/*/ ; do - # Extrahiere den Teil nach "systems/" relative_path="${SYSTEM#*/systems/}" - - # Entferne den abschließenden Schrägstrich relative_path="${relative_path%/}" typePart="${relative_path%/*}" # before "/" eg. backend / frontend diff --git a/cron/.gitignore b/cron/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/cron/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/setup b/setup index 21d109b..e5ebc32 100755 --- a/setup +++ b/setup @@ -30,4 +30,4 @@ echo "source $ENV_DIR/bin/git" >> ~/.profile echo "appending dev-env .profile to .profile" echo "" >> ~/.profile -cat .profile >> ~/.profile \ No newline at end of file +cat .profile >> ~/.profile From 8d261fd92ee2da022b67f913c722aaddf4c215be Mon Sep 17 00:00:00 2001 From: Flo Date: Fri, 6 Dec 2024 01:33:17 +0100 Subject: [PATCH 10/10] added update --- .gitignore | 1 + bin/script/foreachSystem | 2 ++ update | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 .gitignore create mode 100755 update diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cef5ae5 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +var/ \ No newline at end of file diff --git a/bin/script/foreachSystem b/bin/script/foreachSystem index 2cbff86..4bc4f98 100755 --- a/bin/script/foreachSystem +++ b/bin/script/foreachSystem @@ -22,6 +22,8 @@ for SYSTEM in $ENV_DIR/systems/*/*/ ; do if [[ "$COMMAND" == "init" ]]; then $ENV_DIR/systems/$typePart/$systemPart/bin/script/init + elif [[ "$COMMAND" == "update" ]]; then + $ENV_DIR/systems/$typePart/$systemPart/bin/script/update else $DENV_COMMAND $SYSTEM_CODE $COMMAND fi diff --git a/update b/update new file mode 100755 index 0000000..c0193e6 --- /dev/null +++ b/update @@ -0,0 +1,33 @@ +#!/bin/bash + +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 + +EXIT=0 + +# Check docker-compose.yml file +if [ ! -f "$SCRIPT_DIR/docker/docker-compose.yml" ] +then + cp "$SCRIPT_DIR/docker/docker-compose.yml.dist" "$SCRIPT_DIR/docker/docker-compose.yml" + EXIT=1 +fi + +# Check docker-compose-mac.yml file +if [ ! -f "$SCRIPT_DIR/docker/docker-compose-mac.yml" ] +then + cp "$SCRIPT_DIR/docker/docker-compose-mac.yml.dist" "$SCRIPT_DIR/docker/docker-compose-mac.yml" + EXIT=1 +fi + + +if [ $EXIT -eq 1 ] +then + echo "docker-compose files created, please change variables and call update again" + exit 1 +fi + +denvexec up -d +$SCRIPT_DIR/bin/script/foreachSystem update