diff --git a/server/scripts/nas_down.sh b/server/scripts/nas_down.sh index 0b593c9..d8cf793 100755 --- a/server/scripts/nas_down.sh +++ b/server/scripts/nas_down.sh @@ -1,17 +1,41 @@ #!/bin/bash -NAS_DEPENDENTS="" -for CONTAINER_ID in $(docker ps -aq) # get list of all loaded containers (running and stopped) -do - CONTAINER_NAME=$(docker ps -aq --filter "id=$CONTAINER_ID" --format '{{.Names}}') # get the container's name - CONTAINER_MOUNTS=$(docker inspect --format '{{range .Mounts}}{{println .Source}}{{end}}' $CONTAINER_ID) # print the container's volume mounts - #echo "======== CHECKING $CONTAINER_NAME ========" - echo "$CONTAINER_MOUNTS" | grep -q /mnt/nas +## This block checks all loaded (running or stopped) containers for nas-dependent mounts and adds them (by container name) to the NAS_DEPENDENTS variable. +# NAS_DEPENDENTS="" +# for CONTAINER_ID in $(docker ps -aq) # get list of all loaded containers (running and stopped) +# do +# CONTAINER_NAME=$(docker ps -aq --filter "id=$CONTAINER_ID" --format '{{.Names}}') # get the container's name +# CONTAINER_MOUNTS=$(docker inspect --format '{{range .Mounts}}{{println .Source}}{{end}}' $CONTAINER_ID) # print the container's volume mounts +# echo "$CONTAINER_MOUNTS" | grep -q /mnt/nas +# MATCH=$? +# if [ $MATCH == 0 ]; then +# NAS_DEPENDENTS+="$CONTAINER_NAME\n" +# fi +# done +## + +## This block checks all projects within the ~/homelab/server/config directory for NAS-dependence +NAS_DEPENDENTS="" +for project in $(find ~/homelab/server/config -maxdepth 1 -mindepth 1 -path ~/homelab/server/config/minecraft -prune -o -print | cut -d "/" -f7) +do + echo "======== CHECKING $project ========" + cd ~/homelab/server/config/$project + docker-compose config + docker-compose config | grep -q /mnt/nas MATCH=$? if [ $MATCH == 0 ]; then - echo "$CONTAINER_NAME" - NAS_DEPENDENTS+="$CONTAINER_NAME\n" + NAS_DEPENDENTS+="$project\n" fi done -echo "NAS_DEPENDENTS=" -echo -e "${NAS_DEPENDENTS}" \ No newline at end of file + +echo -e "$NAS_DEPENDENTS" + +## This block runs docker-compose down for +## all projects found by the previous block + +for project in $(echo -e "$NAS_DEPENDENTS") +do + echo "======== SHUTTING DOWN $project ========" + cd ~/homelab/server/config/$project + docker-compose down +done \ No newline at end of file