make: Add git-log targets and record last successful run #111

Merged
Jan Lindemann merged 2 commits from jan/feature/20260916-make-add-git-log-targets-and-record-last-successful-run into master 2026-09-16 18:26:31 +02:00 AGit
7 changed files with 37 additions and 5 deletions

8
.gitignore vendored
View file

@ -20,7 +20,6 @@
*tmp*
*~
.cache-project.mk
.cache-projects.mk
.exrc
.feedfs_history
.gdb_history
@ -38,20 +37,19 @@ bin/*.tcl
conftest.py
core
dist
last-successful-run.txt
ld-*.conf
local.conf
local.mk
local.mk
local.yaml
make/*.pc
make/ssh-wrapper.sh
mkspec.sh
pr-descr*.txt
pre-local.mk
pyproject.toml
pyrightconfig.json
test-out.txt
test/integration/jw-pkg/projects/cache/test-pyproject.toml
test/integration/jw-pkg/projects/cache/test-pyrightconfig.json
!*.jw-tmpl
!*.tmpl
.cache-projects.mk
make/ssh-wrapper.sh

View file

@ -38,6 +38,7 @@ bin/*.tcl
conftest.py
core
dist
last-successful-run.txt
ld-*.conf
local.conf
local.mk

View file

@ -337,6 +337,9 @@ git-short-diff: $(SSH_WRAPPER_SH)
git-status:
$(PGIT_SH) status -uno
git-log-%:
$(PGIT_SH) log -$* 2>&1
git-get: $(SSH_WRAPPER_SH)
$(PGIT_SH_GET_DEFAULT)
touch get.done

View file

@ -1,6 +1,7 @@
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/py-defs.mk
include $(JWBDIR)/make/test-guard.mk
include $(JWBDIR)/make/run-success.mk
EXE ?= $(firstword $(wildcard main.py runme.py test.py *.py))
EXE_ARGS ?=
@ -14,6 +15,7 @@ test: all testability
run:
$(PYTHON_RUNNER) $(EXE) $(EXE_ARGS)
$(RUN_SUCCESS_CREATE_MARKER)
run.sh:
echo -e "#!/bin/bash\n\nexport PYTHONPATH=$(PYTHONPATH)\nset -x\nexec $(PYTHON) $(EXE)" '"$$@"' > $@.tmp

View file

@ -243,6 +243,16 @@ ifneq ($(EXE_PATH),)
endif
endif
git-log-%:
git log -$* 2>&1
git-log-tree-%:
ifneq ($(PROJECTS_DIR),)
make --no-print-directory -C $(PROJECTS_DIR) git-log-$* 2>&1
else
@echo "No PROJECTS_DIR defined to log commits for"
endif
# -- special built-in targets
.PRECIOUS: $(LOCAL_H)

15
make/run-success.mk Normal file
View file

@ -0,0 +1,15 @@
ifndef RUN_SUCCESS_RECORD_CMD
RUN_SUCCESS_RECORD_CMD := git log --oneline -1
endif
ifndef RUN_SUCCESS_MARKER
RUN_SUCCESS_MARKER := last-successful-run.txt
endif
RUN_SUCCESS_CREATE_MARKER = $(RUN_SUCCESS_RECORD_CMD) > $(RUN_SUCCESS_MARKER).tmp && \
mv $(RUN_SUCCESS_MARKER).tmp $(RUN_SUCCESS_MARKER)
all:
distclean: distclean.run-success
distclean.run-success:
rm -f $(RUN_SUCCESS_MARKER)

View file

@ -5,6 +5,7 @@
include $(JWBDIR)/make/defs.mk
include $(JWBDIR)/make/defs-cpp.mk
include $(JWBDIR)/make/run-success.mk
DIR_BASENAME = $(notdir $(CWD))
@ -76,6 +77,7 @@ run test: run-deps
@echo "wine $(EXE_CMD)"
@echo -e "set PATH=%PATH;$(DLL_PATH)\n" \
"$(EXE_CMD)" | wine cmd
$(RUN_SUCCESS_CREATE_MARKER)
start: run-deps
@echo "wine $(EXE_CMD)"
@ -85,6 +87,7 @@ start: run-deps
else
run test: run-deps
$(EXE_CMD)
$(RUN_SUCCESS_CREATE_MARKER)
start: run-deps
$(EXE_CMD) &