From: Richard Purdie Date: Fri, 6 May 2022 15:56:03 +0000 (+0100) Subject: scripts/git: Ensure we don't have circular references X-Git-Tag: uninative-3.7~876 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=27de610ac30d4c81352efc794df7e9b1060f7a68;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git scripts/git: Ensure we don't have circular references This is horrible but I'm running out of better ideas. We hit circular reference issues which we were trying to avoid in the core HOSTTOOLS code. When building the eSDK, there can be two copies of the script. Therefore assume git will never be in a directory called scripts. This fixes eSDK build failures. Signed-off-by: Richard Purdie --- diff --git a/scripts/git b/scripts/git index 8adf5c9ecb7..644055e5401 100755 --- a/scripts/git +++ b/scripts/git @@ -10,7 +10,14 @@ os.environ['PSEUDO_UNLOAD'] = '1' # calculate path to the real 'git' path = os.environ['PATH'] -path = path.replace(os.path.dirname(sys.argv[0]), '') +# we need to remove our path but also any other copy of this script which +# may be present, e.g. eSDK. +replacements = [os.path.dirname(sys.argv[0])] +for p in path.split(":"): + if p.endswith("/scripts"): + replacements.append(p) +for r in replacements: + path = path.replace(r, '/ignoreme') real_git = shutil.which('git', path=path) if len(sys.argv) == 1: