#!/bin/bash # View mainroom logs # # Usage: # ./logs.sh # All logs # ./logs.sh # Service compose logs (e.g., amar, soleprint) # ./logs.sh # Specific container name (e.g., backend, db) set -e # Change to parent directory (services are in ../service_name) cd "$(dirname "$0")/.." # Export mainroom/.env vars if [ -f ".env" ]; then set -a source .env set +a fi TARGET=${1:-all} SERVICE_DIRS=() # Find all service directories (have docker-compose.yml, exclude ctrl/nginx) for dir in */; do dirname="${dir%/}" if [ -f "$dir/docker-compose.yml" ] && [ "$dirname" != "ctrl" ] && [ "$dirname" != "nginx" ]; then SERVICE_DIRS+=("$dirname") fi done if [[ " ${SERVICE_DIRS[@]} " =~ " ${TARGET} " ]]; then # Service directory logs cd "$TARGET" && docker compose logs -f elif [ "$TARGET" = "all" ]; then # All containers from all services echo "Tailing logs for: ${SERVICE_DIRS[*]}" for service in "${SERVICE_DIRS[@]}"; do cd "$service" docker compose logs -f & cd .. done wait else # Specific container name - try exact match docker logs -f "$TARGET" 2>/dev/null || \ echo "Container not found: $TARGET" echo "Use service name (e.g., ./logs.sh soleprint) or full container name" fi