summarylogtreecommitdiffstats
path: root/Makefile
blob: bdbc235e7ddc4b046359cc56b9500da4ea3e0e9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
PKGNAME := kanata-switcher
UPSTREAM := 7mind/kanata-switcher

CURRENT_VER := $(shell sed --quiet 's/^pkgver=//p' PKGBUILD)
LATEST_VER := $(shell curl --silent https://api.github.com/repos/$(UPSTREAM)/releases/latest | jq --raw-output '.tag_name | ltrimstr("v")')

.PHONY: check-update update build lint srcinfo clean publish

check-update:
	@echo "Current: $(CURRENT_VER)"
	@echo "Latest:  $(LATEST_VER)"
	@if [ "$(CURRENT_VER)" = "$(LATEST_VER)" ]; then \
		echo "Up to date."; \
	else \
		echo "Update available: $(CURRENT_VER) -> $(LATEST_VER)"; \
	fi

update:
	@if [ -z "$(LATEST_VER)" ]; then \
		echo "ERROR: Could not fetch latest version from GitHub" >&2; \
		exit 1; \
	fi
	@if [ "$(CURRENT_VER)" = "$(LATEST_VER)" ]; then \
		echo "Already at $(CURRENT_VER), nothing to do."; \
		exit 0; \
	fi
	sed --in-place "s/^pkgver=.*/pkgver=$(LATEST_VER)/" PKGBUILD
	sed --in-place "s/^pkgrel=.*/pkgrel=1/" PKGBUILD
	updpkgsums
	@echo "Updated to $(LATEST_VER)"

build:
	makepkg --syncdeps --force

lint:
	namcap PKGBUILD
	namcap $(PKGNAME)-$(CURRENT_VER)-*.pkg.tar.zst

srcinfo:
	makepkg --printsrcinfo > .SRCINFO

clean:
	rm --recursive --force src/ pkg/ *.tar.gz *.pkg.tar.zst

publish: clean update build lint srcinfo
	$(MAKE) clean
	git add PKGBUILD .SRCINFO
	git commit --message "feat: update to $(LATEST_VER)"
	git push