# kind-voltha testing Makefile
#
# SPDX-FileCopyrightText: © 2020 Open Networking Foundation
# SPDX-License-Identifier: Apache-2.0

SHELL = bash -eu -o pipefail

.DEFAULT_GOAL := help
.PHONY: test shellcheck yamllint lint-json help

test: shellcheck lint-json yamllint ## run all tests

SHELL_FILES := voltha
shellcheck: ## check shell scripts with shellcheck
	shellcheck --version
	shellcheck $(SHELL_FILES)

YAML_FILES ?= $(shell find . -type f \( -name '*.yaml' -o -name '*.yml' -o -name '*.cfg' \) -print )
yamllint: ## lint check YAML files with yamllint
	yamllint --version
	yamllint \
    -d "{extends: default, rules: {line-length: {max: 99}}}" \
    -s $(YAML_FILES)

JSON_FILES ?= $(shell find . -type f -name '*.json' -print )
lint-json: ## lint check JSON files by loading them with python
	for jsonfile in $(JSON_FILES); do \
		echo "Validating json file: $$jsonfile" ;\
		python -m json.tool $$jsonfile > /dev/null ;\
	done

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