contrib/packagelib.sh
branchstable
changeset 26833 6474b64045fb
parent 24972 56c64c91b429
child 29641 13f90dde8f8c
--- a/contrib/packagelib.sh	Tue Oct 27 12:34:05 2015 +0800
+++ b/contrib/packagelib.sh	Mon Oct 26 14:19:37 2015 -0400
@@ -1,3 +1,12 @@
+# Extract version number into 4 parts, some of which may be empty:
+#
+# version: the numeric part of the most recent tag. Will always look like 1.3.
+#
+# type: if an rc build, "rc", otherwise empty
+#
+# distance: the distance from the nearest tag, or empty if built from a tag
+#
+# node: the node|short hg was built from, or empty if built from a tag
 gethgversion() {
     make clean
     make local || make local PURE=--pure
@@ -7,13 +16,20 @@
 
     hgversion=`$HG version | sed -ne 's/.*(version \(.*\))$/\1/p'`
 
+    if echo $hgversion | grep + > /dev/null 2>&1 ; then
+        tmp=`echo $hgversion | cut -d+ -f 2`
+        hgversion=`echo $hgversion | cut -d+ -f 1`
+        distance=`echo $tmp | cut -d- -f 1`
+        node=`echo $tmp | cut -d- -f 2`
+    else
+        distance=''
+        node=''
+    fi
     if echo $hgversion | grep -- '-' > /dev/null 2>&1; then
-        # nightly build case, version is like 1.3.1+250-20b91f91f9ca
         version=`echo $hgversion | cut -d- -f1`
-        release=`echo $hgversion | cut -d- -f2 | sed -e 's/+.*//'`
+        type=`echo $hgversion | cut -d- -f2`
     else
-        # official tag, version is like 1.3.1
-        version=`echo $hgversion | sed -e 's/+.*//'`
-        release='0'
+        version=$hgversion
+        type=''
     fi
 }