summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim MacArthur <jim.macarthur@codethink.co.uk>2018-09-19 18:20:53 +0100
committerJim MacArthur <jim.macarthur@codethink.co.uk>2018-09-19 18:20:53 +0100
commitad275cb4fbafc6d324f390994ae738db0ce94713 (patch)
tree90c47d9cfdea30f7dfa3b4bd1ac14e717f1b2e7e
parente73b9d596ddc0902bd53f6b2aaada7d49e45a35e (diff)
downloadbuildstream-ad275cb4fbafc6d324f390994ae738db0ce94713.tar.gz
_casbaseddirectory: Add selectable roundtrip import
-rw-r--r--buildstream/storage/_casbaseddirectory.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/buildstream/storage/_casbaseddirectory.py b/buildstream/storage/_casbaseddirectory.py
index 0dd37aff4..87612bb96 100644
--- a/buildstream/storage/_casbaseddirectory.py
+++ b/buildstream/storage/_casbaseddirectory.py
@@ -551,12 +551,22 @@ class CasBasedDirectory(Directory):
verify = True
duplicate_cas = None
+ roundtrip_import = False
if isinstance(external_pathspec, FileBasedDirectory):
source_directory = external_pathspec._get_underlying_directory()
if files is None:
files = list_relative_paths(source_directory)
result = self._import_files_from_directory(source_directory, files=files)
elif isinstance(external_pathspec, CasBasedDirectory):
+ if roundtrip_import:
+ with tempfile.TemporaryDirectory(prefix="roundtrip") as tmpdir:
+ external_pathspec.export_files(tmpdir)
+ if files is None:
+ files = list_relative_paths(tmpdir)
+ result = self._import_files_from_directory(tmpdir, files=files)
+ return result
+
+
result = self._import_cas_into_cas(external_pathspec, files=files)
# Duplicate the current directory and do an import that way.
if verify: