# meetus — convenience wrapper around ctrl/batch.sh (adhoc tool, nothing
# standardized here; this just saves typing the batch flags).
#
#   make batch IN="/mnt/win/trainings"                  # outputs next to sources
#   make batch IN="..." AUDIO_LANG=es                   # set audio language
#   make batch IN="..." OUT=output/run1                 # collect outputs elsewhere
#   make batch IN="..." EXTRA="--skip-cache-whisper"    # one-off extra flags
#   make dry   IN="..."                                 # list what would run
#   make batch IN="..." EXT="mp4 mov"                   # limit extensions
#   make batch IN="..." FLAGS="--embed-images"          # replace the base flags
#
# IN is required. OUT defaults to IN (write in place); otherwise the input
# folder structure is mirrored under OUT.

IN  ?=
# Default: write outputs next to the source files (run folders land in the same
# dir as each video/audio). Pass OUT=... to collect them elsewhere instead.
OUT ?= $(IN)

# The base combo used on every run. LANG/EXTRA below add to this without
# needing to retype it; override FLAGS only to change the base itself.
FLAGS ?= --embed-images --scene-detection --scene-threshold 10 --diarize --transcript-formats srt

# Per-run knobs (appended after FLAGS): language, plus any one-off extra flags
# (e.g. --skip-cache-whisper, --transcript-formats srt).
# NB: named AUDIO_LANG, not LANG — LANG is the shell locale env var.
# Defaults to English; override (e.g. AUDIO_LANG=es) for other languages.
AUDIO_LANG ?= en
EXTRA      ?=

# Optional: restrict scanned extensions / pick the python interpreter.
EXT    ?=
PYTHON ?=
export PYTHON

# doocus (document extraction) knobs. DOCS_OUT defaults to docs-output; the input
# tree is mirrored under it. DOC_EXTRA forwards one-off flags to process_doc.py
# (e.g. --render for pdf page thumbnails, --ocr for images/scanned pdfs).
DOCS_OUT  ?= docs-output
DOC_EXTRA ?=

.PHONY: batch dry docs docs-dry help

batch:
	@ctrl/batch.sh -i "$(IN)" -o "$(OUT)" $(if $(EXT),-e "$(EXT)") -- \
		$(FLAGS) $(if $(AUDIO_LANG),--language $(AUDIO_LANG)) $(EXTRA)

dry:
	@ctrl/batch.sh -i "$(IN)" -o "$(OUT)" $(if $(EXT),-e "$(EXT)") -n

# Document extraction (doocus), mirrors the input tree into DOCS_OUT.
#   make docs IN="/mnt/win/drive"                    # extract all docs
#   make docs IN="..." DOC_EXTRA="--render --ocr"    # thumbnails + OCR
#   make docs-dry IN="..."                           # list what would run
docs:
	@ctrl/batch_docs.sh -i "$(IN)" -o "$(DOCS_OUT)" $(if $(EXT),-e "$(EXT)") -- \
		$(DOC_EXTRA)

docs-dry:
	@ctrl/batch_docs.sh -i "$(IN)" -o "$(DOCS_OUT)" $(if $(EXT),-e "$(EXT)") -n

help:
	@sed -n '3,14p' Makefile
