From fe09aec078c0fd7069def9f8fe53f8f2eb87e186 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Fri, 19 Jun 2026 19:02:52 +0200 Subject: Makefile: add maintenance target --- Makefile | 38 +++++++++++++++++++++++++++++++++++--- README.Arch | 2 +- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 361f610..e26105a 100644 --- a/Makefile +++ b/Makefile @@ -3,10 +3,10 @@ include prelude.mk PKG_NAME := cmake-common .PHONY: all -all: package +all: build -.PHONY: package -package: +.PHONY: build +build: makepkg --clean --cleanbuild --force --syncdeps && makepkg --printsrcinfo > .SRCINFO .PHONY: commit @@ -17,3 +17,35 @@ commit: .PHONY: push push: git push 'ssh://aur@aur.archlinux.org/$(call escape,$(PKG_NAME)).git' "$$( git symbolic-ref HEAD ):master" + +.PHONY: pkgver +pkgver: + @git fetch && \ + new_pkgver="$$( git describe --tags --abbrev=0 origin/master | sed 's/^v//' )" && \ + source PKGBUILD && \ + echo "Current pkgver: $$pkgver" && \ + echo "New pkgver: $$new_pkgver" && \ + if [ "$$pkgver" != "$$new_pkgver" ]; then \ + sed -i -e "s/^pkgver=.*/pkgver=$$new_pkgver/" PKGBUILD && \ + sed -i -e "s/^pkgrel=.*/pkgrel=1/" PKGBUILD ; \ + fi + +.PHONY: maintenance +maintenance: pkgver + $(MAKE) build + + @git_status="$$( git status --porcelain=v1 )" && \ + if [ -z "$$git_status" ]; then \ + true; \ + elif [ "$$git_status" = $$' M .SRCINFO\n M PKGBUILD' ]; then \ + $(MAKE) commit && \ + git push -q && \ + $(MAKE) push ; \ + else \ + echo; \ + echo '-----------------------------------------------------------------'; \ + echo 'Error: unrecognized modifications in the repository:'; \ + echo "$$git_status"; \ + echo '-----------------------------------------------------------------'; \ + exit 1; \ + fi diff --git a/README.Arch b/README.Arch index 0149fe3..7f23e4c 100644 --- a/README.Arch +++ b/README.Arch @@ -5,7 +5,7 @@ There're a bunch of useful one-liners in Makefile. * Make the package (this also updates .SRCINFO): - make package + make build * Commit the changes: -- cgit v1.3