NAME = netoik-rp TAG = $(shell git describe --abbrev=0) TAG_SPLIT = $(subst -, ,$(TAG)) EPOCH = $(word 1,$(TAG_SPLIT)) VERSION = $(word 2,$(TAG_SPLIT)) RELEASE = $(word 3,$(TAG_SPLIT)) RELEASE_SPLIT = $(subst ., ,$(RELEASE)) RELEASE_NGINX = $(word 1,$(RELEASE_SPLIT)).$(word 3,$(RELEASE_SPLIT)) ARCH = noarch OWNER = netoik SUMMARY = "Netoïk Reverse Proxy" LICENSE = "MIT" URL = "https://git.netoik.io/$(OWNER)/$(NAME)" SOURCE0 = "$(NAME)-$(EPOCH)-$(VERSION)-$(RELEASE).tar.gz" RPM_RPMDIR = $(shell rpm --eval '%{_rpmdir}') RPM_SBINDIR = $(shell rpm --eval '%{_sbindir}') RPM_SOURCEDIR = $(shell rpm --eval '%{_sourcedir}') RPM_SYSCONFDIR = $(shell rpm --eval '%{_sysconfdir}') RPM_UNITDIR = $(shell rpm --eval '%{_unitdir}') RPM_TARBALL_PATH = $(RPM_SOURCEDIR)/$(SOURCE0) RPM_BUILD_PATH = $(RPM_RPMDIR)/$(ARCH)/$(NAME)-$(VERSION)-$(RELEASE).$(ARCH).rpm .PHONY: help help: @grep -E '^[a-zA-Z0-9_-]+:.*?## .*' $(MAKEFILE_LIST) | \ awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' .PHONY: name name: ## Show project name @echo "$(NAME)" .PHONY: tag tag: ## Show last tag @echo "$(TAG)" .PHONY: epoch epoch: ## Show project epoch @echo "$(EPOCH)" .PHONY: version version: ## Show current project version @echo "$(VERSION)" .PHONY: release release: ## Show current project release @echo "$(RELEASE)" .PHONY: release_nginx release_nginx: ## Show nginx release @echo "$(RELEASE_NGINX)" .PHONY: arch arch: ## Show rpm arch target @echo "$(ARCH)" .PHONY: owner owner: ## Show project owner name @echo "$(OWNER)" .PHONY: summary summary: ## Show project summary @echo "$(SUMMARY)" .PHONY: license license: ## Show project license @echo "$(LICENSE)" .PHONY: url url: ## Show project homepage URL @echo "$(URL)" .PHONY: source0 source0: ## Show rpm source0 file name @echo "$(SOURCE0)" $(RPM_TARBALL_PATH): git archive --format=tar.gz \ --output="$@" \ --prefix="$(NAME)-$(VERSION)/" \ --verbose \ HEAD .PHONY: tarball tarball: $(RPM_TARBALL_PATH) ## Build rpm tarball .PHONY: install install: ## Install files into rpm dest (requires env var DESTDIR) @if [ -z "$(DESTDIR)" ]; then \ printf "[CRITICAL] Missing env var DESTDIR\n" 1>&2; \ printf "[CRITICAL] This command is designed to be called by rpmbuild only!\n" 1>&2; \ exit 1; \ fi install --mode=755 \ --directory $(DESTDIR)$(RPM_SYSCONFDIR)/nginx/conf.d \ $(DESTDIR)$(RPM_SYSCONFDIR)/certbot \ $(DESTDIR)$(RPM_UNITDIR) \ $(DESTDIR)$(RPM_SBINDIR) install --mode=644 \ --target-directory=$(DESTDIR)$(RPM_SYSCONFDIR)/nginx/conf.d \ files/nginx/0_security.conf files/nginx/z_default.conf install --mode=600 \ --target-directory=$(DESTDIR)$(RPM_SYSCONFDIR)/certbot \ files/certbot/ovh.ini install --mode=644 \ --target-directory=$(DESTDIR)$(RPM_UNITDIR) \ files/systemd/certbot-renew.service \ files/systemd/certbot-renew.timer install --mode=755 \ --target-directory=$(DESTDIR)$(RPM_SBINDIR) \ files/sbin/certbot_renew .PHONY: upload upload: ## Upload rpm package to Gitea repository (requires env var PKG_TOKEN) @if [ -z "$(PKG_TOKEN)" ]; then \ printf "[CRITICAL] Missing env var PKG_TOKEN\n" 1>&2; \ printf "[CRITICAL]This command is designed to be called by Gitea Actions only!\n" 1>&2; \ exit 1; \ fi curl --fail-with-body \ --upload-file "$(RPM_BUILD_PATH)" \ --user "$(OWNER):$(PKG_TOKEN)" \ https://git.netoik.io/api/packages/$(OWNER)/rpm/upload