From b99dcbfeb344390fea9919199b34e5504f7c84e3 Mon Sep 17 00:00:00 2001 From: Jose Fonseca Date: Tue, 1 Aug 2017 14:36:16 +0100 Subject: [PATCH] build: Convert git_sha1_gen script to Python. Python is the scripting language we've been using for scripts that need to run across all supported platforms. Shell is *not* a portable language for scripts. Reviewed-by: Eric Engestrom --- Makefile.am | 2 +- bin/git_sha1_gen.py | 20 ++++++++++++++++++++ bin/git_sha1_gen.sh | 12 ------------ src/Makefile.am | 2 +- src/SConscript | 3 ++- src/mesa/Android.libmesa_git_sha1.mk | 2 +- 6 files changed, 25 insertions(+), 16 deletions(-) create mode 100755 bin/git_sha1_gen.py delete mode 100755 bin/git_sha1_gen.sh diff --git a/Makefile.am b/Makefile.am index cf52c834aa3..538c38ddebf 100644 --- a/Makefile.am +++ b/Makefile.am @@ -53,7 +53,7 @@ EXTRA_DIST = \ common.py \ docs \ doxygen \ - bin/git_sha1_gen.sh \ + bin/git_sha1_gen.py \ scons \ SConstruct diff --git a/bin/git_sha1_gen.py b/bin/git_sha1_gen.py new file mode 100755 index 00000000000..6d13db1e16f --- /dev/null +++ b/bin/git_sha1_gen.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python + +import os.path +import subprocess +import sys + +git_dir = os.path.join(os.path.dirname(sys.argv[0]), '..', '.git') +try: + git_sha1 = subprocess.check_output([ + 'git', + '--git-dir=' + git_dir, + 'rev-parse', + '--short=10', + 'HEAD', + ], stderr=open(os.devnull, 'w')) +except subprocess.CalledProcessError as e: + # don't print anything if git fails + pass +else: + sys.stdout.write('#define MESA_GIT_SHA1 "git-%s"\n' % git_sha1.rstrip()) diff --git a/bin/git_sha1_gen.sh b/bin/git_sha1_gen.sh deleted file mode 100755 index 898e5907587..00000000000 --- a/bin/git_sha1_gen.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -# run git from the sources directory -cd "$(dirname "$0")" - -# don't print anything if git fails -if ! git_sha1=$(git --git-dir=../.git rev-parse --short=10 HEAD 2>/dev/null) -then - exit -fi - -printf '#define MESA_GIT_SHA1 "git-%s"\n' "$git_sha1" diff --git a/src/Makefile.am b/src/Makefile.am index 5aee6b01417..8d7483fc758 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -21,7 +21,7 @@ .PHONY: git_sha1.h.tmp git_sha1.h.tmp: - @sh $(top_srcdir)/bin/git_sha1_gen.sh > $@ + @python $(top_srcdir)/bin/git_sha1_gen.py > $@ git_sha1.h: git_sha1.h.tmp @echo "updating git_sha1.h" diff --git a/src/SConscript b/src/SConscript index 82bc28518ef..bd20d4e2108 100644 --- a/src/SConscript +++ b/src/SConscript @@ -1,6 +1,7 @@ import filecmp import os import subprocess +from sys import executable as python_cmd Import('*') @@ -25,7 +26,7 @@ def write_git_sha1_h_file(filename): tempfile = "git_sha1.h.tmp" with open(tempfile, "w") as f: - args = [ 'sh', Dir('#').abspath + '/bin/git_sha1_gen.sh' ] + args = [ python_cmd, Dir('#').abspath + '/bin/git_sha1_gen.py' ] try: subprocess.Popen(args, stdout=f).wait() except: diff --git a/src/mesa/Android.libmesa_git_sha1.mk b/src/mesa/Android.libmesa_git_sha1.mk index 7d64b1c809c..f66f88484bc 100644 --- a/src/mesa/Android.libmesa_git_sha1.mk +++ b/src/mesa/Android.libmesa_git_sha1.mk @@ -46,7 +46,7 @@ LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/, git_sha1.h) $(intermediates)/git_sha1.h: $(wildcard $(MESA_TOP)/.git/logs/HEAD) @mkdir -p $(dir $@) @echo "GIT-SHA1: $(PRIVATE_MODULE) <= git" - $(hide) sh $(MESA_TOP)/bin/git_sha1_gen.sh > $@ + $(hide) python $(MESA_TOP)/bin/git_sha1_gen.py > $@ LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates) -- 2.30.2