From: Lady Date: Tue, 2 Jan 2024 18:20:30 +0000 (-0500) Subject: Provide $buildtime, $srctime, and $path variables X-Git-Tag: 0.2.0 X-Git-Url: https://git.ladys.computer/Shushe/commitdiff_plain/refs/tags/0.2.0 Provide $buildtime, $srctime, and $path variables --- diff --git a/GNUmakefile b/GNUmakefile index 6d68702..e862477 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -16,6 +16,7 @@ override define makefileinfo ║│ │║ ║│ • cat │║ ║│ • cp │║ +║│ • date │║ ║│ • echo │║ ║│ • file │║ ║│ • find │║ @@ -25,6 +26,7 @@ override define makefileinfo ║│ • rm │║ ║│ • sed │║ ║│ • sleep │║ +║│ • stat │║ ║│ • test │║ ║│ • touch │║ ║│ • tr (requires support for `-d´) │║ @@ -79,6 +81,7 @@ endef # different implementation, you can override the appropriate variable. CAT := cat CP := cp +DATE := date ECHO := echo FILE := file FIND := find @@ -88,6 +91,7 @@ PRINTF := printf RM := rm SED := sed SLEEP := sleep +STAT := stat TEST := test TOUCH := touch TR := tr @@ -425,7 +429,7 @@ $(BUILDDIR)/transform.xslt: $(BUILDDIR)/transform.catalog $(THISDIR)/lib/catalog $(call compiled,$(compilablefiles)): $(BUILDDIR)/public/%: $$(call parsed,$(SRCDIR)/%) $(BUILDDIR)/transform.xslt $$(call parsed,$$(call dependencies,$(SRCDIR)/%)) $(silent)$(call ensuredirectory,$(dir $@)) @$(PRINTF) '%s\n' $(call quote,Compiling `$*´…) - $(silent)$(XSLTPROC) -o $(call quote,$@) --stringparam catalog 'catalog' $(call quote,$(BUILDDIR)/transform.xslt) $(call quote,$<) + $(silent)$(XSLTPROC) -o $(call quote,$@) --stringparam catalog 'catalog' --stringparam buildtime '$(shell TZ= $(DATE) '+%Y-%m-%dT%H:%M:%SZ')' --stringparam srctime '$(shell TZ= $(STAT) -f '%Sm' -t '%Y-%m-%dT%H:%M:%SZ' $(call quote,$(SRCDIR)/$*))' --stringparam path $(call quote,/$*) $(call quote,$(BUILDDIR)/transform.xslt) $(call quote,$<) $(call compiled,$(filter $(assetfiles),$(sourcefiles))): $(BUILDDIR)/public/%: $(SRCDIR)/% @$(PRINTF) '%s\n' $(call quote,Compiling `$*´…) $(silent)$(call ensuredirectory,$(dir $@)) diff --git a/README.markdown b/README.markdown index 6870c4d..13cb1d6 100644 --- a/README.markdown +++ b/README.markdown @@ -93,6 +93,7 @@ In every case, you may supply your own implementation by overriding the - `cat` - `cp` +- `date` - `echo` - `file` - `find` @@ -102,6 +103,7 @@ In every case, you may supply your own implementation by overriding the - `rm` - `sed` - `sleep` +- `stat` - `test` - `touch` - `tr` (requires support for `-d`) @@ -312,6 +314,11 @@ The following are recommendations on effective creation of - Set `@exclude-result-prefixes` on the root `xslt:transform` element to reduce the number of declared namespaces in the final result. +The params `$buildtime`, `$srctime`, and `$path` are available within + transforms and are initialized to the current time, the time that the + source file was last modified, and the path of the output file within + $(DESTDIR). + ## Output Wrapping ⛩️📰 书社 will wrap the final output of the transforms in appropriate diff --git a/lib/catalog2transform.xslt b/lib/catalog2transform.xslt index 2a3bc71..65f5f0f 100644 --- a/lib/catalog2transform.xslt +++ b/lib/catalog2transform.xslt @@ -24,7 +24,10 @@ If a copy of the M·P·L was not distributed with this file, You can obtain one