# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
# SPDX-License-Identifier: Apache-2.0

SHELL = bash -e -o pipefail

# Common set of args, set to --debug for more output
COMMON_ARGS ?= --debug

# tooling binaries
VIRTUALENV 	?= python3 -m venv
PYTHON      ?= python3
# change to be 'python3 -m cProfile -s cumtime' to profile a script

.DEFAULT_GOAL := help
.PHONY: test lint yamllint license help build siterender buildcollector sync

# Create the virtualenv with all the tools installed
VENV_NAME = venv-sjsg

$(VENV_NAME): requirements.txt
	$(VIRTUALENV) $@ ;\
  source ./$@/bin/activate ; set -u ;\
  $(PYTHON) -m pip install -r requirements.txt yamllint
	echo "To enter virtualenv, run 'source $@/bin/activate'"

# build targets
products:
	mkdir products

site:
	mkdir site

build: buildcollector siterender ## Collect build info and create website

buildcollector: $(VENV_NAME) products ## Collect build information from Jenkins jobs
	source ./$</bin/activate ; set -u ;\
	$(PYTHON) buildcollector.py scrape.yaml --credentials credentials.yaml $(COMMON_ARGS)

siterender: $(VENV_NAME) site ## Create static website from build information
	source ./$</bin/activate ; set -u ;\
	$(PYTHON) siterender.py $(COMMON_ARGS)
	cp -r static/* site/

serve:
	cd site && $(PYTHON) -m http.server

sync:
	rsync --delete-after -avP site/ ubuntu@static.opennetworking.org:/srv/sites/certification.opennetworking.org/

# testing targets
test: yamllint tox ## run all tests

# YAML files, excluding venv and cookiecutter directories
YAML_FILES        ?= $(shell find . -type d \( -path "./venv-sjsg" \) -prune -o -type f \( -name '*.yaml' -o -name '*.yml' \) -print )

yamllint: $(VENV_NAME) ## lint YAML format using yamllint
	source ./$</bin/activate ; set -u ;\
  yamllint --version ;\
  yamllint \
    -d "{extends: default, rules: {line-length: {max: 139}}}" \
    -s $(YAML_FILES)

tox: $(VENV_NAME) ## test code with tox
	source ./$</bin/activate ; set -u ;\
  tox

license: ## Check code for licensing with REUSE
	reuse --root . lint

clean: ## Delete all temporary files
	rm -rf products site *.xml *.egg-info

clean-all: clean ## Delete virtualenv and all cached job information
	rm -rf $(VENV_NAME) jobs .tox

help: ## Print help for each target
	@echo sjsg test targets
	@echo
	@grep '^[[:alnum:]_-]*:.* ##' $(MAKEFILE_LIST) \
    | sort | awk 'BEGIN {FS=":.* ## "}; {printf "%-25s %s\n", $$1, $$2};'
