From 0d0b8425eaf74a6d7f3d9f6471e6edca1a273c06 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Tue, 8 Sep 2015 11:39:07 +0100 Subject: scriptutils: split out simple fetching function from recipetool This will now also be used by "devtool upgrade". Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- scripts/lib/scriptutils.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'scripts/lib/scriptutils.py') diff --git a/scripts/lib/scriptutils.py b/scripts/lib/scriptutils.py index fdf4b5d55d..5d103a58fe 100644 --- a/scripts/lib/scriptutils.py +++ b/scripts/lib/scriptutils.py @@ -69,3 +69,30 @@ def git_convert_standalone_clone(repodir): # of the contents is shared bb.process.run('git repack -a', cwd=repodir) os.remove(alternatesfile) + +def fetch_uri(d, uri, destdir, srcrev=None): + """Fetch a URI to a local directory""" + import bb.data + bb.utils.mkdirhier(destdir) + localdata = bb.data.createCopy(d) + localdata.setVar('BB_STRICT_CHECKSUM', '') + localdata.setVar('SRCREV', srcrev) + ret = (None, None) + olddir = os.getcwd() + try: + fetcher = bb.fetch2.Fetch([uri], localdata) + for u in fetcher.ud: + ud = fetcher.ud[u] + ud.ignore_checksums = True + fetcher.download() + fetcher.unpack(destdir) + for u in fetcher.ud: + ud = fetcher.ud[u] + if ud.method.recommends_checksum(ud): + md5value = bb.utils.md5_file(ud.localpath) + sha256value = bb.utils.sha256_file(ud.localpath) + ret = (md5value, sha256value) + finally: + os.chdir(olddir) + return ret + -- cgit 1.2.3-korg