###
export CHART_NAME=simpipe
export DEV_IMAGE_SUFFIX=-prod


# make local-dev first rule
local-dev:

include aiv-toolkit/Makefile

CORSIKA_TABLES_REPO = https://gitlab.cta-observatory.org/cta-computing/dpps/simpipe/simulation_software/corsika7-interaction-tables

CORSIKA_TABLES_VERSION ?= $(call aiv_config,CORSIKA_TABLES_VERSION)
SIMTOOLS_SIMULATION_MODELS_GIT_REVISION ?= $(call aiv_config,SIMTOOLS_SIMULATION_MODELS_GIT_REVISION)
SIMTOOLS_SIMULATION_MODEL_VERSION ?= $(call aiv_config,SIMTOOLS_SIMULATION_MODEL_VERSION)
SIMTOOLS_TESTS_RESOURCE_VERSION ?= $(call aiv_config,SIMTOOLS_TESTS_RESOURCE_VERSION)
SIMTOOLS_TESTS_REVISION ?= $(call aiv_config,SIMTOOLS_TESTS_REVISION)
SIMTOOLS_CORSIKA_HE_INTERACTION ?= $(call aiv_config,SIMTOOLS_CORSIKA_HE_INTERACTION)
SIMTOOLS_CORSIKA_LE_INTERACTION ?= $(call aiv_config,SIMTOOLS_CORSIKA_LE_INTERACTION)

$(info CORSIKA_TABLES_VERSION=${CORSIKA_TABLES_VERSION})
$(info SIMTOOLS_SIMULATION_MODELS_GIT_REVISION=${SIMTOOLS_SIMULATION_MODEL_VERSION})
$(info SIMTOOLS_TESTS_RESOURCE_VERSION=${SIMTOOLS_TESTS_RESOURCE_VERSION})
$(info SIMTOOLS_TESTS_REVISION=${SIMTOOLS_TESTS_REVISION})
$(info SIMTOOLS_CORSIKA_HE_INTERACTION=${SIMTOOLS_CORSIKA_HE_INTERACTION})
$(info SIMTOOLS_CORSIKA_LE_INTERACTION=${SIMTOOLS_CORSIKA_LE_INTERACTION})

local-dev: build-dev-docker update-simulation-model update-corsika-tables update-test-files
	docker run --rm -it \
		--user=$(shell id -u):$(shell id -g) \
		-v $(shell pwd):/home/simpipe/simpipe \
		--workdir /home/simpipe/simpipe \
		-e SIMTOOLS_SIMULATION_MODELS_GIT_PATH=/home/simpipe/simpipe/simulation-model \
		-e SIMTOOLS_CORSIKA_INTERACTION_TABLE_PATH=/home/simpipe/simpipe/corsika7-interaction-tables/interaction-tables \
		-e SIMTOOLS_TESTS_PATH=/home/simpipe/simpipe/simtools-tests/simtools-tests \
		-e SIMTOOLS_TESTS_RESOURCE_VERSION=${SIMTOOLS_TESTS_RESOURCE_VERSION} \
		-e SIMTOOLS_CORSIKA_HE_INTERACTION=${SIMTOOLS_CORSIKA_HE_INTERACTION} \
		-e SIMTOOLS_CORSIKA_LE_INTERACTION=${SIMTOOLS_CORSIKA_LE_INTERACTION} \
		-e SIMTOOLS_SIMULATION_MODEL_VERSION=${SIMTOOLS_SIMULATION_MODEL_VERSION} \
 		harbor.cta-observatory.org/dpps/simpipe-prod:dev


simulation-model:
	git clone --bare \
		--branch ${SIMTOOLS_SIMULATION_MODELS_GIT_REVISION} \
		https://gitlab.cta-observatory.org/cta-science/simulations/simulation-model/simulation-models.git \
		$@

update-simulation-model: simulation-model
	git -C simulation-model fetch --depth 1 origin ${SIMTOOLS_SIMULATION_MODELS_GIT_REVISION}

corsika7-interaction-tables:
	GIT_LFS_SKIP_SMUDGE=1 git clone -c advice.detachedHead=false --depth 1 --branch "${CORSIKA_TABLES_VERSION}" "${CORSIKA_TABLES_REPO}"
	git -C $@ lfs install --local

update-corsika-tables: corsika7-interaction-tables
	git -C $^ fetch --depth=1 origin
	GIT_LFS_SKIP_SMUDGE=1 git -C $^ checkout --detach FETCH_HEAD
	git -C $^ lfs pull --exclude="interaction-tables/qgsdat-II-04,interaction-tables/qgsdat-III"

simtools-tests:
	git -c advice.detachedHead=false clone --sparse --filter="blob:none" \
		--branch "${SIMTOOLS_TESTS_REVISION}" \
		https://github.com/gammasim/simtools-tests
	git -C simtools-tests sparse-checkout set \
		"simtools-tests/${SIMTOOLS_TESTS_RESOURCE_VERSION}/integration_tests"

update-test-files: simtools-tests
	git -C simtools-tests fetch --depth=1 origin "${SIMTOOLS_TESTS_REVISION}"
	git -C simtools-tests checkout "${SIMTOOLS_TESTS_REVISION}"

.PHONY: update-simulation-model update-corsika-tables


clean:
	rm -rf simtools-tests corsika7-interaction-tables simulation-model
