diff --git a/Makefile b/Makefile
index 7756c56..9ecbedb 100644
--- a/Makefile
+++ b/Makefile
@@ -29,12 +29,12 @@ RUSTLIBS = --extern getopt=build/o/libgetopt.rlib \
CFLAGS += -I$(SYSEXITS)
.PHONY: all
-all: dj false fop hru intcmp mm npc rpn scrut str strcmp swab true
+all: docs dj false fop hru intcmp mm npc rpn scrut str strcmp swab true
# keep build/include until bindgen(1) has stdin support
# https://github.com/rust-lang/rust-bindgen/issues/2703
build:
- mkdir -p build/bin build/include build/lib build/o build/test
+ mkdir -p build/bin build/docs build/include build/lib build/o build/test
.PHONY: clean
clean:
@@ -43,7 +43,7 @@ clean:
dist: all
mkdir -p $(DESTDIR)/$(PREFIX)/bin $(DESTDIR)/$(PREFIX)/share/man/man1
cp build/bin/* $(DESTDIR)/$(PREFIX)/bin
- cp docs/*.1 $(DESTDIR)/$(PREFIX)/$(MANDIR)/man1
+ cp build/docs/*.1 $(DESTDIR)/$(PREFIX)/$(MANDIR)/man1
.PHONY: install
install: dist
@@ -54,6 +54,13 @@ test: build
tests/posix-compat.sh
$(RUSTC) --test src/getopt-rs/lib.rs -o build/test/getopt
+.PHONY: docs
+docs: docs/ build
+ for file in docs/*; do original="$$(sed -n '/^\.TH/p' <"$$file")"; \
+ title="$$(printf '%s\n' "$$original" | sed \
+ "s/X\.X\.X/$$(git describe --tags --long | cut -d'-' -f1)/g")"; \
+ sed "s/$$original/$$title/g" <"$$file" >"build/$$file"; done
+
.PHONY: rustlibs
rustlibs: build/o/libsysexits.rlib build/o/libgetopt.rlib \
build/o/libstrerror.rlib
diff --git a/docs/dj.1 b/docs/dj.1
index 5cf2368..7031ccf 100644
--- a/docs/dj.1
+++ b/docs/dj.1
@@ -4,7 +4,7 @@
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
.\" visit .
.\"
-.TH DJ 1 2024-06-17 "Harakit 0.13.11"
+.TH DJ 1 2024-06-17 "Harakit X.X.X"
.SH NAME
dj \(en disk jockey
.\"
diff --git a/docs/false.1 b/docs/false.1
index 1d6691b..b940909 100644
--- a/docs/false.1
+++ b/docs/false.1
@@ -4,7 +4,7 @@
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
.\" visit .
.\"
-.TH FALSE 1 2024-06-06 "Harakit 0.13.11"
+.TH FALSE 1 2024-06-06 "Harakit X.X.X"
.SH NAME
false \(en do nothing, unsuccessfully
.\"
diff --git a/docs/fop.1 b/docs/fop.1
index 2d54720..d777c68 100644
--- a/docs/fop.1
+++ b/docs/fop.1
@@ -4,7 +4,7 @@
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
.\" visit .
.\"
-.TH FOP 1 2024-06-17 "Harakit 0.13.11"
+.TH FOP 1 2024-06-17 "Harakit X.X.X"
.SH NAME
fop \(en field operator
.\"
diff --git a/docs/hru.1 b/docs/hru.1
index eb0ce5e..6929d51 100644
--- a/docs/hru.1
+++ b/docs/hru.1
@@ -3,7 +3,7 @@
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
.\" visit .
.\"
-.TH HRU 1 2024-06-17 "Harakit 0.13.11"
+.TH HRU 1 2024-06-17 "Harakit X.X.X"
.SH NAME
hru \(en human readable units
.\"
diff --git a/docs/intcmp.1 b/docs/intcmp.1
index 19c2c75..034a4fd 100644
--- a/docs/intcmp.1
+++ b/docs/intcmp.1
@@ -4,7 +4,7 @@
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
.\" visit .
.\"
-.TH INTCMP 1 2024-06-06 "Harakit 0.13.11"
+.TH INTCMP 1 2024-06-06 "Harakit X.X.X"
.SH NAME
intcmp \(en compare integers
.\"
diff --git a/docs/mm.1 b/docs/mm.1
index 0f1b97b..2ff9f44 100644
--- a/docs/mm.1
+++ b/docs/mm.1
@@ -3,7 +3,7 @@
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
.\" visit .
.\"
-.TH MM 1 2024-06-17 "Harakit 0.13.11"
+.TH MM 1 2024-06-17 "Harakit X.X.X"
.SH NAME
mm \(en middleman
.\"
diff --git a/docs/npc.1 b/docs/npc.1
index 03890fb..3e7af39 100644
--- a/docs/npc.1
+++ b/docs/npc.1
@@ -4,7 +4,7 @@
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
.\" visit .
.\"
-.TH NPC 1 2024-06-17 "Harakit 0.13.11"
+.TH NPC 1 2024-06-17 "Harakit X.X.X"
.SH NAME
npc \(en show non-printing characters
.\"
diff --git a/docs/rpn.1 b/docs/rpn.1
index f937889..8c8cd84 100644
--- a/docs/rpn.1
+++ b/docs/rpn.1
@@ -4,7 +4,7 @@
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
.\" visit .
.\"
-.TH RPN 1 2024-06-17 "Harakit 0.13.11"
+.TH RPN 1 2024-06-17 "Harakit X.X.X"
.SH NAME
rpn \(en reverse polish notation evaluation
.\"
diff --git a/docs/scrut.1 b/docs/scrut.1
index 541dcf2..56383b8 100644
--- a/docs/scrut.1
+++ b/docs/scrut.1
@@ -4,7 +4,7 @@
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
.\" visit .
.\"
-.TH SCRUT 1 2024-06-06 "Harakit 0.13.11"
+.TH SCRUT 1 2024-06-06 "Harakit X.X.X"
.SH NAME
scrut \(en scrutinize file properties
.SH SYNOPSIS
diff --git a/docs/str.1 b/docs/str.1
index c4d68cc..22ffea1 100644
--- a/docs/str.1
+++ b/docs/str.1
@@ -4,7 +4,7 @@
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
.\" visit .
.\"
-.TH STR 1 2024-06-17 "Harakit 0.13.11"
+.TH STR 1 2024-06-17 "Harakit X.X.X"
.SH NAME
str \(en test string arguments
.\"
diff --git a/docs/strcmp.1 b/docs/strcmp.1
index 781fc92..0ad21b2 100644
--- a/docs/strcmp.1
+++ b/docs/strcmp.1
@@ -4,7 +4,7 @@
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
.\" visit .
.\"
-.TH STRCMP 1 2024-06-17 "Harakit 0.13.11"
+.TH STRCMP 1 2024-06-17 "Harakit X.X.X"
.SH NAME
strcmp \(en compare strings
.\"
diff --git a/docs/swab.1 b/docs/swab.1
index 708a59b..72f0f19 100644
--- a/docs/swab.1
+++ b/docs/swab.1
@@ -4,7 +4,7 @@
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
.\" visit .
.\"
-.TH SWAB 1 2024-06-17 "Harakit 0.13.11"
+.TH SWAB 1 2024-06-17 "Harakit X.X.X"
.SH NAME
swab \(en swap bytes
.\"
diff --git a/docs/true.1 b/docs/true.1
index 15a4667..97af65b 100644
--- a/docs/true.1
+++ b/docs/true.1
@@ -4,7 +4,7 @@
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
.\" visit .
.\"
-.TH TRUE 1 2024-06-06 "Harakit 0.13.11"
+.TH TRUE 1 2024-06-06 "Harakit X.X.X"
.SH NAME
true \(en do nothing, successfully
.\"