# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

SHELL := /bin/bash -o pipefail

VERSION ?= latest
RELEASE_SRC = skywalking-kong-${VERSION}-src
ROCKSPEC = ./rockspec/kong-skywalking-${VERSION}-0.rockspec

.PHONY: default
default: release-src

.PHONY: verify
verify:
	@ls ${ROCKSPEC} || echo "ERROR: ${ROCKSPEC} not found."
	@grep -E '^version = "${VERSION}-0"' ${ROCKSPEC} \
		|| (echo "ERROR: incorrect version number, should be \"${VERSION}-0\"." && exit 1)
	@grep -E 'branch = ("v${VERSION}"|"master")' ${ROCKSPEC} \
		|| (echo "ERROR: incorrect branch name, should be \"v${VERSION}\"." && exit 1)
	@luarocks pack ${ROCKSPEC}
	@rm ./kong-plugin-skywalking-${VERSION}-0.src.rock

### help:         Show Makefile rules
.PHONY: help
help:
	@echo Makefile rules:
	@echo
	@grep -E '^### [-A-Za-z0-9_]+:' Makefile | sed 's/###/   /'

### release-src:  Release source code
.PHONY: release-src
verify:
release-src:
	tar -zcvf $(RELEASE_SRC).tgz \
		./kong \
		./rockspec \
		./Makefile \
		./NOTICE \
		./LICENSE \
		./*.md 

	gpg --batch --yes --armor --detach-sig $(RELEASE_SRC).tgz
	shasum -a 512 $(RELEASE_SRC).tgz > $(RELEASE_SRC).tgz.sha512

	mkdir -p release
	mv $(RELEASE_SRC).tgz release/$(RELEASE_SRC).tgz
	mv $(RELEASE_SRC).tgz.asc release/$(RELEASE_SRC).tgz.asc
	mv $(RELEASE_SRC).tgz.sha512 release/$(RELEASE_SRC).tgz.sha512

