all: dev metadata build

.PHONY: check-conda
check-conda:
	@[ "${CONDA_EXE}" != "" ] || \
		(echo "Conda does not appear to be installed; please install it and try again"; exit 1)
	@[ "${CONDA_PREFIX}" != "" ] || \
		(echo "Conda does not appear to be active; please activate 'data' and try again"; exit 1)
	@[ "${CONDA_DEFAULT_ENV}" == "data" ] || \
		(echo "Wrong conda environment '${CONDA_DEFAULT_ENV}' appears to be active; please deactivate, activate 'data' and try again"; exit 1)

.PHONY: metadata
metadata:
	buildout parts=gen_metadata

.PHONY: build
build:
	buildout parts=build_pkgs name=all

.PHONY: test
test:
	buildout parts=test name=all

${CONDA_PREFIX}: environment.yml
	conda env update
	touch $@

.PHONY: dev
dev: check-conda ${CONDA_PREFIX} alembic-update
	for dir in shared/{schema,workspaces,channels} services/{workflow,capability} apps/cli/{utilities/wf_monitor,executables/{null,vulture}}; do \
  		pushd $$dir; \
  		python setup.py develop; \
  		popd; \
  	done

.PHONY: alembic-update
alembic-update:
	cd schema; \
	env CAPO_PROFILE=local alembic upgrade head