diff options
author | Ross Burton <ross.burton@intel.com> | 2019-09-19 23:43:36 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-09-27 13:02:06 +0100 |
commit | 33cf9172ded50a869f7201ba463ab9ecc69b8252 (patch) | |
tree | 1782c258806bb868c4a50b51863ba780a53189fe | |
parent | 797354d285f6d624d9adb52bab65823572da0e39 (diff) | |
download | bitbake-contrib-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.py | 17 |
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 |