diff options
author | Jim MacArthur <jim.macarthur@codethink.co.uk> | 2018-09-19 18:20:53 +0100 |
---|---|---|
committer | Jim MacArthur <jim.macarthur@codethink.co.uk> | 2018-09-19 18:20:53 +0100 |
commit | ad275cb4fbafc6d324f390994ae738db0ce94713 (patch) | |
tree | 90c47d9cfdea30f7dfa3b4bd1ac14e717f1b2e7e | |
parent | e73b9d596ddc0902bd53f6b2aaada7d49e45a35e (diff) | |
download | buildstream-ad275cb4fbafc6d324f390994ae738db0ce94713.tar.gz |
_casbaseddirectory: Add selectable roundtrip import
-rw-r--r-- | buildstream/storage/_casbaseddirectory.py | 10 |
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: |