in src/buildstream_plugins/sources/cargo.py [0:0]
def stage(self, directory):
try:
mirror_file = self._get_mirror_file()
with tarfile.open(mirror_file) as tar:
tar.extractall(path=directory)
members = tar.getmembers()
if members:
dirname = members[0].name.split("/")[0]
package_dir = os.path.join(directory, dirname)
checksum_file = os.path.join(package_dir, ".cargo-checksum.json")
with open(checksum_file, "w", encoding="utf-8") as f:
checksum_data = {"package": self.sha, "files": {}}
json.dump(checksum_data, f)
except (tarfile.TarError, OSError) as e:
raise SourceError("{}: Error staging source: {}".format(self, e)) from e