summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarius Makovsky <traveltissues@protonmail.com>2019-12-10 14:11:22 +0000
committerJürg Billeter <j@bitron.ch>2020-02-04 10:51:44 +0100
commit20e85785f5376a540d636658b45d6d5a3051caae (patch)
treea5a10fa354993fbd987c077ff8d65f6738d5127c
parent054ad1a7e687dda6103d2d1f654e9ad6854a706d (diff)
downloadbuildstream-20e85785f5376a540d636658b45d6d5a3051caae.tar.gz
Support properties in import_files()
-rw-r--r--src/buildstream/storage/_casbaseddirectory.py2
-rw-r--r--src/buildstream/storage/_filebaseddirectory.py9
-rw-r--r--src/buildstream/storage/directory.py7
3 files changed, 14 insertions, 4 deletions
diff --git a/src/buildstream/storage/_casbaseddirectory.py b/src/buildstream/storage/_casbaseddirectory.py
index 46984041e..bfa3f823e 100644
--- a/src/buildstream/storage/_casbaseddirectory.py
+++ b/src/buildstream/storage/_casbaseddirectory.py
@@ -356,7 +356,7 @@ class CasBasedDirectory(Directory):
# content into this CasBasedDirectory using CAS-to-CAS import
# to write the report, handle possible conflicts (if the target
# directory is not empty) and apply the optional filter.
- digest = self.cas_cache.import_directory(external_pathspec)
+ digest = self.cas_cache.import_directory(external_pathspec, properties=properties)
external_pathspec = CasBasedDirectory(self.cas_cache, digest=digest)
assert isinstance(external_pathspec, CasBasedDirectory)
diff --git a/src/buildstream/storage/_filebaseddirectory.py b/src/buildstream/storage/_filebaseddirectory.py
index 222b47979..95d113ec3 100644
--- a/src/buildstream/storage/_filebaseddirectory.py
+++ b/src/buildstream/storage/_filebaseddirectory.py
@@ -79,7 +79,14 @@ class FileBasedDirectory(Directory):
return current_dir
def import_files(
- self, external_pathspec, *, filter_callback=None, report_written=True, update_mtime=False, can_link=False
+ self,
+ external_pathspec,
+ *,
+ filter_callback=None,
+ report_written=True,
+ update_mtime=False,
+ can_link=False,
+ properties=None
):
""" See superclass Directory for arguments """
diff --git a/src/buildstream/storage/directory.py b/src/buildstream/storage/directory.py
index 2d3dfd4da..c75157e8a 100644
--- a/src/buildstream/storage/directory.py
+++ b/src/buildstream/storage/directory.py
@@ -32,7 +32,7 @@ See also: :ref:`sandboxing`.
"""
-from typing import Callable, Optional, Union
+from typing import Callable, Optional, Union, List
from .._exceptions import BstError
from ..exceptions import ErrorDomain
@@ -83,7 +83,8 @@ class Directory:
filter_callback: Optional[Callable[[str], bool]] = None,
report_written: bool = True,
update_mtime: bool = False,
- can_link: bool = False
+ can_link: bool = False,
+ properties: Optional[List[str]] = None
) -> FileListResult:
"""Imports some or all files from external_path into this directory.
@@ -104,6 +105,8 @@ class Directory:
original files change. Setting this doesn't guarantee hard
links will be made. can_link will never be used if
update_mtime is set.
+ properties: Optional list of strings representing file properties
+ to capture when importing.
Yields:
A report of files imported and overwritten.