feat: make version parser easier
authorleaeasy <leaeasy@gmail.com>
Tue, 16 Jan 2018 03:10:53 +0000 (11:10 +0800)
committerleaeasy <leaeasy@gmail.com>
Tue, 16 Jan 2018 04:06:19 +0000 (12:06 +0800)
Change-Id: I30870bd384d19c2911a380a42bc46300ab70d3c5

debian/rules

index fc10b2f29c580afa28ab69b4b10e49efe19cf3d1..06264e966b22a735b4d3bb02ae193ff6443cc462 100755 (executable)
@@ -5,18 +5,24 @@ export QT_SELECT = qt5
 
 DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
 
-export _VER=$(shell if [ ! -f .git/config ];then dpkg-parsechangelog -ldebian/changelog -SVersion | awk -F'-' '{print $$1}'; fi)
-export _MAJ_VER=$(shell echo $$_VER|awk '{split($$0,vs,"."); if (length(vs[1]) == 0) print 0; else  print int(vs[1]);}')
-export _MIN_VER=$(shell echo $$_VER|awk '{split($$0,vs,"."); if (length(vs[2]) == 0) print 0; else  print int(vs[2]);}')
-export _PAT_VER=$(shell echo $$_VER|awk '{split($$0,vs,"."); if (length(vs[3]) == 0) print 0; else  print int(vs[3]);}')
-export _BUILD_VER=$(shell echo $$_VER|awk '{split($$0,vs,"."); if (length(vs[4]) != 0) print vs[4]; else { split(vs[3], pvs,/\+r/); if (length(pvs[2]) != 0) print int(pvs[2]); else print 0;}}')
-VERSION ?= $(shell echo $$_VER|awk '{ if (length($$0)!=0) printf "%s.%s.%s.%s",${_MAJ_VER},${_MIN_VER},${_PAT_VER},${_BUILD_VER}; else printf ""; }')
+ifneq (,$(wildcard .git/config))
+       CONFIG_VERSION=
+else
+VERSION = $(shell dpkg-parsechangelog -ldebian/changelog -SVersion)
+_PACK_VER = $(shell echo $(VERSION) | awk -F'[+_~-]' '{print $$1}')
+_BUILD_VER = $(shell echo $(VERSION) | awk -F'[+_~-]' '{print $$2}' | sed 's/[^0-9]//g')
+ifeq ($(_BUILD_VER),)
+       CONFIG_VERSION = $(_PACK_VER)
+else
+       CONFIG_VERSION = $(_PACK_VER).$(_BUILD_VER)
+endif
+endif
 
 %:
        dh $@ --parallel
 
 override_dh_auto_configure:
-       dh_auto_configure -- LIB_INSTALL_DIR=/usr/lib/$(DEB_HOST_MULTIARCH) VERSION=$(VERSION)
+       dh_auto_configure -- LIB_INSTALL_DIR=/usr/lib/$(DEB_HOST_MULTIARCH) VERSION=$(CONFIG_VERSION)
 
 override_dh_auto_test:
        echo "skip auto test"