slweb

Једноставни генератор статичких веб страна
git clone https://git.sr.ht/~strahinja/slweb
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување d7e072fd7fb23f32a728294890ff61a72fd709f4
родитељ 9729cf9b1bf0634c8c3c06674620491c63fe1588
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Mon, 11 Mar 2024 12:44:03 +0100

Rebuild when the date or version change

Signed-off-by: Страхиња Радић <contact@strahinja.org>

Diffstat:
MMakefile | 22++++++++++++----------
Mlib/makedate | 18++++++++++++++----
Mlib/makeversion | 16+++++++++++++---
Mlib/replacepat | 2+-
измењених датотека: 4, додавања: 40(+), брисања: 18(-)

diff --git a/Makefile b/Makefile @@ -3,12 +3,12 @@ include config.mk .SUFFIXES: .1.in .1 .h.in .h .c .o .1.in.1: - sh -x lib/replacepat $< > $@ + sh -x lib/replacepat $< $@ .h.in.h: - sh -x lib/replacepat $< > $@ + sh -x lib/replacepat $< $@ -all: $(PROG) $(MANPAGE) examples +all: $(PROG) $(MANPAGE) examples makedate makeversion examples: cd examples && make all @@ -19,17 +19,19 @@ date: version: sh lib/makeversion -slweb.o: slweb.c defs.h utf8.h version.h +makedate: + sh lib/makedate -$(MANPAGE): $(MANPAGE).in version date +makeversion: + sh lib/makeversion -version.h: version.h.in version date +slweb.o: slweb.c defs.h utf8.h version.h -utf8.o: utf8.c utf8.h +$(MANPAGE): $(MANPAGE).in date version -strlcpy.o: strlcpy.c +version.h: version.h.in date version -strlcat.o: strlcat.c +utf8.o: utf8.c utf8.h $(PROG): $(OBJS) $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) @@ -63,4 +65,4 @@ test: all pack: all version sh -x lib/mkpack -.PHONY: all clean examples install uninstall pack test +.PHONY: clean examples install makedate makeversion pack test uninstall diff --git a/lib/makedate b/lib/makedate @@ -9,12 +9,22 @@ e_user=$(id -un) if [ -d .git ] && command -v git >/dev/null 2>&1; then if [ "$e_user" = "$user" ]; then git log --format=format:%cd \ - --date=format:"%B %d, %Y" -1 @ >date + --date=format:"%B %d, %Y" -1 @ >date.new else su "${user}" -c 'env LC_ALL=C git log --format=format:%cd \ - --date=format:"%B %d, %Y" -1 @' >date + --date=format:"%B %d, %Y" -1 @' >date.new fi - echo >>date + echo >>date.new else - printf "%s\n" "$FALLBACKDATE" >date + printf "%s\n" "$FALLBACKDATE" >date.new +fi + +if [ -f date ]; then + if diff date date.new >/dev/null; then + rm date.new + else + mv date.new date + fi +else + mv date.new date fi diff --git a/lib/makeversion b/lib/makeversion @@ -8,11 +8,21 @@ user=$(unalias ls >/dev/null 2>&1 || true; \ e_user=$(id -un) if [ -d .git ] && command -v git >/dev/null 2>&1; then if [ "$e_user" = "$user" ]; then - git describe 2>/dev/null | sed 's/^v//' >version + git describe 2>/dev/null | sed 's/^v//' >version.new else su "${user}" -c 'git describe' 2>/dev/null | - sed 's/^v//' >version + sed 's/^v//' >version.new fi else - printf "%s\n" "$FALLBACKVER" >version + printf "%s\n" "$FALLBACKVER" >version.new +fi + +if [ -f version ]; then + if diff version version.new >/dev/null; then + rm version.new + else + mv version.new version + fi +else + mv version.new version fi diff --git a/lib/replacepat b/lib/replacepat @@ -2,4 +2,4 @@ # vim: set ft=bash: DATE=$(cat date) VERSION=$(cat version) -sed -e 's|%VERSION%|'"$VERSION"'|g' -e 's|%DATE%|'"$DATE"'|g' $1 +sed -e 's|%VERSION%|'"$VERSION"'|g' -e 's|%DATE%|'"$DATE"'|g' "$1" > "$2"