portability: use py script instead of 'date -d @1234'

On FreeBSD, the 'date' command's -d option has a completely different meaning.
Instead, use a small python script to do the date format conversion, which
should be more portable.

As a side effect, we now also use UTC instead of the build server's timezone,
which may be considered a more international choice.

Add build/unix-time-to-fmt.py, call in build/Makefile.asciidoc.inc.

Change-Id: I91a40656184f553ee375216d8ba5c7788fe9990d
This commit is contained in:
Neels Hofmeyr 2016-10-17 02:18:38 +02:00
parent 1eb93b57e1
commit e2ba56ccce
2 changed files with 19 additions and 1 deletions

View File

@ -1,7 +1,7 @@
BUILDDIR = $(TOPDIR)/build
GIT_VERSION := $(shell git describe --abbrev=4 --dirty --always --tags)
GIT_DATE := $(shell date -d @`git log -n 1 "--pretty=%at" ../.` "+%Y-%b-%e")
GIT_DATE := $(shell $(TOPDIR)/build/unix-time-to-fmt.py `git log -n 1 "--pretty=%at" ../.`)
# prepend the document name with the version numbe suffix
#DOCS_VER = $(foreach P, $(ASCIIDOCS), $(P)-v$(shell xmllint --recover --xpath "//revnumber[position()=last()]/text()" $(P)-docinfo.xml 2>/dev/null))

18
build/unix-time-to-fmt.py Executable file
View File

@ -0,0 +1,18 @@
#!/usr/bin/env python3
"""
Usage:
unix-time-to-fmt.py 1234567 [%Y-%m-%d[...]]
Convert unix timestamp to a string of the given format in UTC, according to
https://docs.python.org/2/library/time.html
Default is '%Y-%b-%d' --> 2016-Jan-01
"""
import sys, time
fmt = '%Y-%b-%d'
if len(sys.argv) > 2:
fmt = sys.argv[2]
print(time.strftime(fmt, time.gmtime(float(sys.argv[1]))))