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.

(From OE-Core rev: 27de610ac30d4c81352efc794df7e9b1060f7a68)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2022-05-06 16:56:03 +01:00
parent 4d7383aefb
commit bf8a1ee202

View File

@ -10,7 +10,14 @@ os.environ['PSEUDO_UNLOAD'] = '1'
# calculate path to the real 'git' # calculate path to the real 'git'
path = os.environ['PATH'] 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) real_git = shutil.which('git', path=path)
if len(sys.argv) == 1: if len(sys.argv) == 1: