# Add any tasks that are not dependent on files to the .PHONY list.
.PHONY: docker_kibana dev pip_dev lint test test_unit clean test_integration docker_unit_lint docker_dev down_dev ci_unit_lint_clean ci_unit_lint

dev:
	env/bin/python3.12 dev.py

env pip_dev:
	python3.12 -m venv env
	env/bin/pip3.12 install --upgrade pip setuptools
	env/bin/pip3.12 install "cython<3.0.0"
	env/bin/pip3.12 install "pyyaml==5.4.1" --no-build-isolation
	env/bin/pip3.12 install -r requirements.txt
	env/bin/pip3.12 install -r requirements-dev.txt

lint:
	env/bin/flake8 conflict_manager/ tests/ ./dev.py

test:
	env/bin/py.test tests/

test_unit: env
	env/bin/py.test \
		--cov conflict_manager tests/ \
		--cov-report xml \
		--junitxml=pyunit.xml

clean:
	rm -rf env

test_integration:
	echo 'No op'

docker_unit_lint:
	docker compose up \
		--build \
		--exit-code-from unit-lint \
		--abort-on-container-exit \
		--remove-orphans \
		unit-lint

down_unit_lint:
	docker compose down unit-lint --remove-orphans

docker_dev:
	docker compose up \
		--build \
		--exit-code-from ows-conflict-manager-dev \
		--abort-on-container-exit \
		--remove-orphans \
		ows-conflict-manager-dev

docker_kibana:
	source .env && (docker rm aws-es-proxy --force || true) && docker run -d -p 8000:8000 \
        --platform "linux/amd64" \
        --name aws-es-proxy \
        -e AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}" \
        -e AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID}" \
        -e AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY}" \
        -e AWS_SESSION_TOKEN="${AWS_SESSION_TOKEN}" \
        abutaha/aws-es-proxy \
        -endpoint "https://${OPENSEARCH_HOST}" \
        -listen 0.0.0.0:8000 \
        -debug && echo "\nAccess to Kibana at http://localhost:8000/_dashboards"

down_dev:
	docker compose down ows-conflict-manager-dev --remove-orphans

ci_unit_lint: ci_unit_lint_clean
	mkdir -p build
	chmod a+w build
	make docker_unit_lint

ci_unit_lint_clean: down_unit_lint
	rm -rf build
