From: Michael Prokop Date: Wed, 30 Oct 2019 14:34:34 +0000 (+0100) Subject: Provide git-describe based version information when running from within git X-Git-Tag: v0.17.0~3 X-Git-Url: http://git.grml.org/?p=grml2usb.git;a=commitdiff_plain;h=4d800e56b2e2de9cdf1d133fd4ce6680c4918a33;hp=46166cdc45ea47cf3bf8fd51951ca56a0f994c69 Provide git-describe based version information when running from within git This is useful when executing grml2usb from inside grml2usb.git itself Thanks: Florian Apolloner for review and feedback --- diff --git a/debian/rules b/debian/rules index 0ba3486..f8d5ced 100755 --- a/debian/rules +++ b/debian/rules @@ -18,7 +18,7 @@ build-indep: build-stamp build-stamp: dh_testdir - egrep -q "PROG_VERSION = '\*\*\*UNRELEASED\*\*\*'" grml2usb || (echo "PROG_VERSION in grml2usb wrong." && exit 2) + egrep -q "^PROG_VERSION = '\*\*\*UNKNOWN\*\*\*'" grml2usb || (echo "PROG_VERSION in grml2usb wrong." && exit 2) $(MAKE) cd mbr && $(MAKE) && cd .. touch build-stamp @@ -41,7 +41,7 @@ install: build # Add here commands to install the package into debian/grml2usb. install -m 755 grml2usb debian/grml2usb/usr/sbin/grml2usb - sed -i -e "s/PROG_VERSION = '\*\*\*UNRELEASED\*\*\*'/PROG_VERSION = '$(VERSION)'/" debian/grml2usb/usr/sbin/grml2usb + sed -i -e "s/^PROG_VERSION = '\*\*\*UNKNOWN\*\*\*'/PROG_VERSION = '$(VERSION)'/" debian/grml2usb/usr/sbin/grml2usb install -m 755 grml2iso debian/grml2usb/usr/sbin/grml2iso install -m 644 mbr/mbrmgr debian/grml2usb/usr/share/grml2usb/mbr/mbrmgr install -m 644 mbr/mbrldr debian/grml2usb/usr/share/grml2usb/mbr/mbrldr diff --git a/grml2usb b/grml2usb index 2103bb9..b4bbf3c 100755 --- a/grml2usb +++ b/grml2usb @@ -32,7 +32,22 @@ import uuid import shutil # The line following this line is patched by debian/rules and tarball.sh. -PROG_VERSION = '***UNRELEASED***' +PROG_VERSION = '***UNKNOWN***' + +# when running from inside git, try to report version information via git-describe +try: + git_dir = os.path.abspath(os.path.dirname(sys.argv[0])) + with open(os.devnull, 'w') as devnull: + PROG_VERSION = subprocess.check_output(["git", + "-C", + git_dir, + "describe", + "--always", + "--dirty"], + stderr=devnull).strip().decode('utf-8', errors='replace') + \ + " (git)" +except Exception: + pass # global variables MOUNTED = set() # register mountpoints diff --git a/tarball.sh b/tarball.sh index 1f3b003..8857bb4 100755 --- a/tarball.sh +++ b/tarball.sh @@ -116,7 +116,7 @@ rm grml2usb-$VERSION/grml2iso.8.txt # binaries, grub cp grml2usb grml2iso mbr/mbrldr mbr/mbrmgr grub/* grml2usb-$VERSION/ -sed -i -e "s/PROG_VERSION='\*\*\*UNRELEASED\*\*\*'/PROG_VERSION='${VERSION}'/" grml2usb-$VERSION/grml2usb +sed -i -e "s/PROG_VERSION='\*\*\*UNKNOWN\*\*\*'/PROG_VERSION='${VERSION}'/" grml2usb-$VERSION/grml2usb tar zcf grml2usb.tgz "${DIR}"