# Copyright 2020-present Open Networking Foundation
#
# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0

# Secret iCal URL for ACE downtime calendar
SECRET_ICAL_URL ?=

# Namespace to install secret in, for testing
NAMESPACE       ?= edge-monitoring

# set default shell
SHELL = bash -e -o pipefail

# Variables
VERSION                  ?= $(shell cat ../VERSION)
VENVDIR := venv

## Docker related
DOCKER_REGISTRY          ?=
DOCKER_REPOSITORY        ?=
DOCKER_BUILD_ARGS        ?=
DOCKER_TAG               ?= ${VERSION}
ADAPTER_IMAGENAME        := ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}edge-monitoring-server:${DOCKER_TAG}


# This should to be the first and default target in this Makefile
help:
	@echo "Usage: make [<target>]"
	@echo "where available targets are:"
	@echo
	@echo "build             : Build the edge-monitoring-server docker image"
	@echo "help              : Print this help"
	@echo "docker-push       : Push the docker image to an external repository"
	@echo "venv              : Build local Python virtualenv"
	@echo "test              : Run edge-monitoring-server unit tests"
	@echo "clean             : Remove files created by the build and tests"
	@echo "distclean         : Remove venv directory"
	@echo

build: docker-build

docker-build:
	docker build $(DOCKER_BUILD_ARGS) \
    -t ${ADAPTER_IMAGENAME} \
    -f ./Dockerfile.server .

docker-push:
	docker push ${ADAPTER_IMAGENAME}

${VENVDIR}: requirements.txt
	python3 -m venv ${VENVDIR};\
        source ./${VENVDIR}/bin/activate ; set -u ;\
		pip install --upgrade pip wheel setuptools;\
		python3 --version; pip --version; \
        pip install -r requirements.txt

clean:
	find . -name '*.pyc' | xargs rm -f

distclean: clean
	rm -rf ${VENVDIR}

test: venv
	source ./${VENVDIR}/bin/activate ; set -u ;\
	python3 test_edge_monitoring_server.py
