diff options
Diffstat (limited to 'scripts/lib/scriptutils.py')
| -rw-r--r-- | scripts/lib/scriptutils.py | 27 |
1 files changed, 27 insertions, 0 deletions
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): | |||
| 69 | # of the contents is shared | 69 | # of the contents is shared |
| 70 | bb.process.run('git repack -a', cwd=repodir) | 70 | bb.process.run('git repack -a', cwd=repodir) |
| 71 | os.remove(alternatesfile) | 71 | os.remove(alternatesfile) |
| 72 | |||
| 73 | def fetch_uri(d, uri, destdir, srcrev=None): | ||
| 74 | """Fetch a URI to a local directory""" | ||
| 75 | import bb.data | ||
| 76 | bb.utils.mkdirhier(destdir) | ||
| 77 | localdata = bb.data.createCopy(d) | ||
| 78 | localdata.setVar('BB_STRICT_CHECKSUM', '') | ||
| 79 | localdata.setVar('SRCREV', srcrev) | ||
| 80 | ret = (None, None) | ||
| 81 | olddir = os.getcwd() | ||
| 82 | try: | ||
| 83 | fetcher = bb.fetch2.Fetch([uri], localdata) | ||
| 84 | for u in fetcher.ud: | ||
| 85 | ud = fetcher.ud[u] | ||
| 86 | ud.ignore_checksums = True | ||
| 87 | fetcher.download() | ||
| 88 | fetcher.unpack(destdir) | ||
| 89 | for u in fetcher.ud: | ||
| 90 | ud = fetcher.ud[u] | ||
| 91 | if ud.method.recommends_checksum(ud): | ||
| 92 | md5value = bb.utils.md5_file(ud.localpath) | ||
| 93 | sha256value = bb.utils.sha256_file(ud.localpath) | ||
| 94 | ret = (md5value, sha256value) | ||
| 95 | finally: | ||
| 96 | os.chdir(olddir) | ||
| 97 | return ret | ||
| 98 | |||
