aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2019-09-19 23:43:36 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-09-27 13:02:06 +0100
commit33cf9172ded50a869f7201ba463ab9ecc69b8252 (patch)
tree1782c258806bb868c4a50b51863ba780a53189fe
parent797354d285f6d624d9adb52bab65823572da0e39 (diff)
downloadbitbake-33cf9172ded50a869f7201ba463ab9ecc69b8252.tar.gz
fetch2/git: refactor check for git-lfs command
Refactor the git-lfs checking: this means both clearer code in the download() function and allows unit testing to monkeypatch the functionality. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/fetch2/git.py17
1 files changed, 9 insertions, 8 deletions
diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py
index 5fd63b4e3..2d1d2cabd 100644
--- a/lib/bb/fetch2/git.py
+++ b/lib/bb/fetch2/git.py
@@ -495,14 +495,8 @@ class Git(FetchMethod):
runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d, workdir=destdir)
if self._contains_lfs(ud, d, destdir):
- if need_lfs:
- path = d.getVar('PATH')
- if path:
- gitlfstool = bb.utils.which(path, "git-lfs", executable=True)
- if not gitlfstool:
- raise bb.fetch2.FetchError("Repository %s has LFS content, install git-lfs on host to download (or set lfs=0 to ignore it)" % (repourl))
- else:
- bb.note("Could not find 'PATH'")
+ if need_lfs and not self._find_git_lfs(d):
+ raise bb.fetch2.FetchError("Repository %s has LFS content, install git-lfs on host to download (or set lfs=0 to ignore it)" % (repourl))
else:
bb.note("Repository %s has LFS content but it is not being fetched" % (repourl))
@@ -570,6 +564,13 @@ class Git(FetchMethod):
pass
return False
+ def _find_git_lfs(self, d):
+ """
+ Return True if git-lfs can be found, False otherwise.
+ """
+ import shutil
+ return shutil.which("git-lfs", path=d.getVar('PATH')) is not None
+
def _get_repo_url(self, ud):
"""
Return the repository URL