Rather than manually tweaking REVISION-DATE and loading it into
DATESTR move all the logic into make-setup-generated.sh. While we are
at it we can query git directly for the state of tree and use that to
fill in the meta-data.

Signed-off-by: Alex Bennée <[email protected]>
---
 REVISION-DATE           |  1 -
 make-setup-generated.sh | 54 +++++++++++++++++++++++++++++------------
 makeall.sh              |  1 -
 makediff.sh             |  1 -
 makediffall.sh          |  1 -
 makediffwithbase.sh     |  1 -
 maketex.sh              |  1 -
 makezip.sh              |  2 --
 8 files changed, 38 insertions(+), 24 deletions(-)
 delete mode 100644 REVISION-DATE

diff --git a/REVISION-DATE b/REVISION-DATE
deleted file mode 100644
index 59c9d17..0000000
--- a/REVISION-DATE
+++ /dev/null
@@ -1 +0,0 @@
-11 April 2019
diff --git a/make-setup-generated.sh b/make-setup-generated.sh
index f15d148..2faea0b 100755
--- a/make-setup-generated.sh
+++ b/make-setup-generated.sh
@@ -1,39 +1,61 @@
 #! /bin/sh
+#
+# Generate version and metadata preamble for the document
+#
 
-VERSION=1.1
-DATESTR=${DATESTR:-`cat REVISION-DATE 2>/dev/null`}
-if [ x"$DATESTR" = x ]; then
-    ISODATE=`git show --format=format:'%cd' --date=iso | head -n 1`
-    DATESTR=`date -d "$DATE" +'%d %B %Y'`
+# Currently this works of the closest lightweight tag but we can
+# update this when we start using proper signed and annotated tags.
+TAG=$(git describe 2> /dev/null)
+if [ x"$TAG" = x ]; then
+    # no tag on head
+    TAG=$(git describe --dirty --tags)
+    # base date on now
+    DATESTR=$(date +'%d %B %Y')
+    COMMIT=$(git rev-parse --short HEAD)
+else
+    # base date on tag
+    DATESTR=$(git log HEAD^..HEAD --format=format:"%cd" --date=format:"%d %B 
%Y")
+    COMMIT=""
+fi
+
+VERSION=$(cut -d'-' -f2 <<EOF
+$TAG
+EOF
+       )
+
+# Finally check if we have un-committed changes in the tree
+if git diff-index --quiet HEAD -- ; then
+    COMMIT="$COMMIT with local changes"
+fi
+
+if [ x"$COMMIT" = x ]; then
+    WORKINGDRAFT=""
+else
+    WORKINGDRAFT=" (@ git $COMMIT)"
 fi
 
 case "$1" in
     *-wd*)
        STAGE=wd
        STAGENAME="Working Draft"
-       WORKINGDRAFT=`basename "$1" | sed 's/.*-wd//'`
        ;;
     *-os*)
        STAGE=os
        STAGENAME="OASIS Standard"
-       WORKINGDRAFT=""
        ;;
     *-csd*)
        STAGE=csd
-       WORKINGDRAFT=`basename "$1" | sed 's/.*-csd//'`
-       STAGENAME="Committee Specification Draft $WORKINGDRAFT"
+       STAGENAME="Committee Specification Draft$WORKINGDRAFT"
        ;;
     *-csprd*)
        STAGE=csprd
-       WORKINGDRAFT=`basename "$1" | sed 's/.*-csprd//'`
-       STAGENAME="Committee Specification Draft $WORKINGDRAFT"
-       STAGEEXTRATITLE=" / \newline Public Review Draft $WORKINGDRAFT"
-       STAGEEXTRA=" / Public Review Draft $WORKINGDRAFT"
+       STAGENAME="Committee Specification Draft$WORKINGDRAFT"
+       STAGEEXTRATITLE=" / \newline Public Review Draft$WORKINGDRAFT"
+       STAGEEXTRA=" / Public Review Draft$WORKINGDRAFT"
        ;;
     *-cs*)
        STAGE=cs
-       WORKINGDRAFT=`basename "$1" | sed 's/.*-cs//'`
-       STAGENAME="Committee Specification $WORKINGDRAFT"
+       STAGENAME="Committee Specification$WORKINGDRAFT"
        ;;
     *)
        echo Unknown doc type >&2
@@ -54,7 +76,7 @@ cat > setup-generated.tex <<EOF
 % define VIRTIO Working Draft number and date
 \newcommand{\virtiorev}{$VERSION}
 \newcommand{\virtioworkingdraftdate}{$DATESTR}
-\newcommand{\virtioworkingdraft}{$WORKINGDRAFT}
+\newcommand{\virtioworkingdraft}{$COMMIT}
 \newcommand{\virtiodraftstage}{$STAGE}
 \newcommand{\virtiodraftstageextra}{$STAGEEXTRA}
 \newcommand{\virtiodraftstageextratitle}{$STAGEEXTRATITLE}
diff --git a/makeall.sh b/makeall.sh
index 37e6c34..1e25b82 100755
--- a/makeall.sh
+++ b/makeall.sh
@@ -1,7 +1,6 @@
 #!/bin/sh
 
 export SPECDOC=${SPECDOC:-`cat REVISION`}
-export DATESTR=${DATESTR:-`cat REVISION-DATE`}
 ./makezip.sh
 ./makehtml.sh
 ./makepdf.sh
diff --git a/makediff.sh b/makediff.sh
index ef538c5..03f6731 100755
--- a/makediff.sh
+++ b/makediff.sh
@@ -1,7 +1,6 @@
 #force revision and date in environment
 #this way they don't appear in the diff
 export SPECDOC=${SPECDOC:-`cat REVISION`}
-export DATESTR=${DATESTR:-`cat REVISION-DATE`}
 export FROMVERSION=${FROMVERSION:-`cat DIFFVERSION`}
 
 #make pdf diff using latexpand and latexdiff-fast
diff --git a/makediffall.sh b/makediffall.sh
index caff23e..f1a3333 100755
--- a/makediffall.sh
+++ b/makediffall.sh
@@ -1,5 +1,4 @@
 export SPECDOC=${SPECDOC:-`cat REVISION`}
-export DATESTR=${DATESTR:-`cat REVISION-DATE`}
 export FROMVERSION=${FROMVERSION:-`cat DIFFVERSION`}
 ./makezip.sh
 mv -f $SPECDOC.zip $SPECDOC-diff-from-${FROMVERSION}.pdf
diff --git a/makediffwithbase.sh b/makediffwithbase.sh
index 8cd3c7a..3916c83 100755
--- a/makediffwithbase.sh
+++ b/makediffwithbase.sh
@@ -1,5 +1,4 @@
 export SPECDOC=${SPECDOC:-`cat REVISION`}
-export DATESTR=${DATESTR:-`cat REVISION-DATE`}
 ./makezip.sh
 ./makehtml.sh
 ./makepdf.sh
diff --git a/maketex.sh b/maketex.sh
index c3b458f..1fee32b 100755
--- a/maketex.sh
+++ b/maketex.sh
@@ -1,3 +1,2 @@
 export SPECDOC=${SPECDOC:-`cat REVISION`}-tex
-export DATESTR=${DATESTR:-`cat REVISION-DATE`}
 ./makezip.sh
diff --git a/makezip.sh b/makezip.sh
index 806fa52..40b13cc 100755
--- a/makezip.sh
+++ b/makezip.sh
@@ -1,5 +1,4 @@
 export SPECDOC=${SPECDOC:-`cat REVISION`}
-export DATESTR=${DATESTR:-`cat REVISION-DATE`}
 rm -f $SPECDOC.zip
 if test -d .git; then
        git archive --format=zip --prefix=tex/ -o $SPECDOC.zip HEAD
@@ -15,6 +14,5 @@ zip $SPECDOC.zip listings/virtio_queue.h
 rm -fr tmpfilesforzip
 mkdir -p tmpfilesforzip/tex
 echo "$SPECDOC" > tmpfilesforzip/tex/REVISION
-echo "$DATESTR" > tmpfilesforzip/tex/REVISION-DATE
 cd tmpfilesforzip
 zip ../$SPECDOC.zip tex/*
-- 
2.20.1


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to