#!/bin/sh export LC_ALL=C echo "===SU:DOCKER_SCAN===" ROOTS="<%composeRoots%>" DEPTH="<%composeScanDepth%>" for root in $ROOTS; do [ -d "$root" ] || continue find "$root" -maxdepth "$DEPTH" -type f \ \( -name 'compose.yaml' -o -name 'compose.yml' \ -o -name 'docker-compose.yaml' -o -name 'docker-compose.yml' \) \ -not -path '*/.git/*' -not -path '*/node_modules/*' \ -not -path '*/backup/*' -not -path '*/old/*' -not -path '*/archive/*' \ 2>/dev/null | while IFS= read -r f; do dir=$(dirname "$f") if docker compose -f "$f" config --quiet >/dev/null 2>&1; then echo "STACK_OK\tdir=$dir\tfile=$f" else echo "STACK_INVALID\tdir=$dir\tfile=$f" fi done done echo "===SU:DOCKER_LABELS===" docker ps --format '{{.ID}}' 2>/dev/null | while read -r id; do proj=$(docker inspect --format '{{index .Config.Labels "com.docker.compose.project"}}' "$id" 2>/dev/null) wd=$(docker inspect --format '{{index .Config.Labels "com.docker.compose.project.working_dir"}}' "$id" 2>/dev/null) [ -n "$proj" ] && echo "ACTIVE\tproject=$proj\tworking_dir=$wd" done echo "===SU:EXIT=0==="