-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMakefile
More file actions
69 lines (61 loc) · 3.26 KB
/
Makefile
File metadata and controls
69 lines (61 loc) · 3.26 KB
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# Convenience developer Makefile (not an OpenWrt package Makefile)
# Usage examples:
# make bump-version VERSION=1.0.4
# make bump-version VERSION=1.0.4-beta
# Optional (after reviewing CHANGELOG stub):
# git add service/nrsyncd.init docs/CHANGELOG.md && git commit -m "chore: bump init version to v1.0.4"
SHELL := /bin/sh
.PHONY: bump-version show-version show-pkg-version bump-pkg-version sync-pkg-version-from-init
INIT_FILE := service/nrsyncd.init
CHANGELOG := docs/CHANGELOG.md
PKG_FILE := package/nrsyncd/Makefile
show-version:
@grep -E '^NRSYNCD_INIT_VERSION=' $(INIT_FILE) || echo 'Version variable not found.'
show-pkg-version:
@if [ -f $(PKG_FILE) ]; then grep -E '^PKG_VERSION:=' $(PKG_FILE); else echo 'Package Makefile missing'; fi
# bump-version updates init script version and optionally (UPDATE_PKG=1) package PKG_VERSION.
bump-version:
@if [ -z "$(VERSION)" ]; then \\
echo "ERROR: Provide VERSION= (e.g. make bump-version VERSION=1.0.4)" >&2; exit 1; \\
fi
@if ! grep -q '^NRSYNCD_INIT_VERSION="' $(INIT_FILE); then \\
echo "ERROR: NRSYNCD_INIT_VERSION= line not found in $(INIT_FILE)" >&2; exit 1; \\
fi
@echo "Updating NRSYNCD_INIT_VERSION to $(VERSION)";
@# BSD/macOS compatible in-place edit
sed -i'' -E 's/^(NRSYNCD_INIT_VERSION=")[^"]+("$$)/\\1$(VERSION)\\2/' $(INIT_FILE)
@grep -E '^NRSYNCD_INIT_VERSION=' $(INIT_FILE)
@if [ "$(UPDATE_PKG)" = 1 ] && [ -f $(PKG_FILE) ]; then \\
echo "Also updating PKG_VERSION in $(PKG_FILE)"; \\
sed -i'' -E 's/^(PKG_VERSION:=).*/\\1$(VERSION)/' $(PKG_FILE); \\
grep -E '^PKG_VERSION:=' $(PKG_FILE); \\
fi
@if [ -f $(CHANGELOG) ]; then \\
if ! grep -q "^## \\[$(VERSION)\\]" $(CHANGELOG); then \\
echo "Inserting stub section into $(CHANGELOG)"; \\
tmp=$$(mktemp 2>/dev/null || echo /tmp/nrsyncd_changelog.$$); \\
awk -v ver="$(VERSION)" -v d="$$(date -u +%Y-%m-%d)" 'BEGIN{inserted=0} NR==1{print;next} NR==2 && !inserted{print "## ["ver"] - "d"\n### Added\n- TBD\n"; inserted=1} {print}' $(CHANGELOG) > $$tmp && mv $$tmp $(CHANGELOG); \\
else \\
echo "CHANGELOG already has entry for $(VERSION), leaving unchanged"; \\
fi; \\
else \\
echo "NOTE: $(CHANGELOG) not found; skipping changelog stub"; \\
fi
@echo "Done. Remember to review CHANGELOG and commit changes."
# bump-pkg-version only changes the package PKG_VERSION (date or semantic) without touching init script.
bump-pkg-version:
@if [ -z "$(VERSION)" ]; then \\
echo "ERROR: Provide VERSION= (e.g. make bump-pkg-version VERSION=2025-09-01)" >&2; exit 1; \\
fi
@if [ ! -f $(PKG_FILE) ]; then echo "ERROR: $(PKG_FILE) missing" >&2; exit 1; fi
@echo "Updating PKG_VERSION to $(VERSION)";
sed -i'' -E 's/^(PKG_VERSION:=).*/\\1$(VERSION)/' $(PKG_FILE)
@grep -E '^PKG_VERSION:=' $(PKG_FILE)
# sync-pkg-version-from-init reads init script version and applies it to PKG_VERSION.
sync-pkg-version-from-init:
@if [ ! -f $(PKG_FILE) ]; then echo "ERROR: $(PKG_FILE) missing" >&2; exit 1; fi
@if ! grep -q '^NRSYNCD_INIT_VERSION=' $(INIT_FILE); then echo "ERROR: version not found in init" >&2; exit 1; fi
@v=$$(grep -E '^NRSYNCD_INIT_VERSION=' $(INIT_FILE) | sed -E 's/^[^=]+="?([^" ]+)"?/\1/'); \\
echo "Syncing PKG_VERSION to $$v"; \\
sed -i'' -E "s/^(PKG_VERSION:=).*/\\1$$v/" $(PKG_FILE); \\
grep -E '^PKG_VERSION:=' $(PKG_FILE)