NAME = netoik-git VERSION = $(shell git describe --abbrev=0) RELEASE = $(shell git rev-parse --short HEAD) ARCH = noarch OWNER = samuel SUMMARY = "Netoïk Git server" LICENSE = "MIT" URL = "https://git.netoik.io/$(OWNER)/$(NAME)" SOURCE0 = "$(NAME)-$(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_TMPPATH = $(shell rpm --eval '%{_tmppath}') 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: version version: ## Show current project version @echo "$(VERSION)" .PHONY: release release: ## Show current project release @echo "$(RELEASE)" .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[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)/gitea $(DESTDIR)$(RPM_UNITDIR) $(DESTDIR)$(RPM_TMPPATH)/gitea_images install --mode=644 --target-directory=$(DESTDIR)$(RPM_SYSCONFDIR)/nginx/conf.d files/nginx/git.netoik.io.conf install --mode=640 --target-directory=$(DESTDIR)$(RPM_SYSCONFDIR)/gitea files/gitea/app.ini install --mode=644 --target-directory=$(DESTDIR)$(RPM_UNITDIR) files/systemd/gitea.service install --mode=644 --target-directory=$(DESTDIR)$(RPM_TMPPATH)/gitea_images files/img/* .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[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