feat: add coop filtering and directory pre-check to run_all_coops.sh

This commit is contained in:
proitlab committed 2026-08-19 11:53:35 +07:00
1 parent 127f3c59b2
commit acd9c9265b
1 file changed
+19 -1
+19 -1
View File
@@ -12,16 +12,24 @@ else
fi
DATE="${1:-$(date +%Y-%m-%d)}"
MODE="${2:-parallel_processes}"
FILTER="${2:-}" # Optional filter like 'K1', 'K2', 'K1-L3', or leave empty for all
MODE="${3:-parallel_processes}"
# Auto-discover all configured floors in configs/floor_config/ (sorted naturally: K1-L1, K1-L2, K1-L3, etc.)
CONFIGS=()
for cfg in $(ls -1 "$SCRIPT_DIR/configs/floor_config/"K*-L*.yaml 2>/dev/null | sort -V); do
base_name="$(basename "$cfg" .yaml)"
if [ -n "$FILTER" ] && [[ "$base_name" != *"$FILTER"* ]]; then
continue
fi
CONFIGS+=("configs/floor_config/$(basename "$cfg")")
done
echo "================================================================="
echo " Starting Multi-Floor Batch Processing for Date: $DATE"
if [ -n "$FILTER" ]; then
echo " Filter Applied: $FILTER"
fi
echo " Discovered Floors (${#CONFIGS[@]} total): ${CONFIGS[*]}"
echo " Execution Mode: $MODE"
echo "================================================================="
@@ -31,6 +39,16 @@ SKIPPED_COUNT=0
for config in "${CONFIGS[@]}"; do
if [ -f "$SCRIPT_DIR/$config" ]; then
floor_name="$(basename "$config" .yaml)"
video_day_dir="$SCRIPT_DIR/../VIDEOS/cycle7/$floor_name/$DATE"
# If videos don't exist for this floor/date on this machine, skip cleanly
if [ ! -d "$video_day_dir" ] && [ ! -d "$SCRIPT_DIR/../VIDEOS/cycle7/$floor_name" ]; then
echo "⏭️ [SKIPPED] $floor_name: No video directory found at ../VIDEOS/cycle7/$floor_name/$DATE"
SKIPPED_COUNT=$((SKIPPED_COUNT + 1))
continue
fi
echo ""
echo ">>> [PROCESSING] Location Config: $config <<<"
if $PYTHON -m chicken_counter.cli batch --config "$config" --date "$DATE" --mode "$MODE"; then