diff options
author | Darius Makovsky <traveltissues@protonmail.com> | 2020-01-08 12:40:43 +0000 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2020-02-05 16:42:10 +0100 |
commit | 78e0620fc9d9f1682794b5257b06481d977eb52c (patch) | |
tree | a4fe6fa847a31b5af162d2f8c571ac6198b58771 /src/buildstream/storage | |
parent | 205786caf932f984f8194fb11193ca162b959783 (diff) | |
download | buildstream-78e0620fc9d9f1682794b5257b06481d977eb52c.tar.gz |
storage: Use specified mtime in import_files
If the mtime is specified then try to copy files in file-to-file
transfers and reset the mtimes to the parameter value.
Diffstat (limited to 'src/buildstream/storage')
-rw-r--r-- | src/buildstream/storage/_casbaseddirectory.py | 2 | ||||
-rw-r--r-- | src/buildstream/storage/_filebaseddirectory.py | 7 | ||||
-rw-r--r-- | src/buildstream/storage/directory.py | 7 |
3 files changed, 6 insertions, 10 deletions
diff --git a/src/buildstream/storage/_casbaseddirectory.py b/src/buildstream/storage/_casbaseddirectory.py index 46984041e..51b75ac19 100644 --- a/src/buildstream/storage/_casbaseddirectory.py +++ b/src/buildstream/storage/_casbaseddirectory.py @@ -341,7 +341,7 @@ class CasBasedDirectory(Directory): result.files_written.append(relative_pathname) 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=None, can_link=False ): """ See superclass Directory for arguments """ diff --git a/src/buildstream/storage/_filebaseddirectory.py b/src/buildstream/storage/_filebaseddirectory.py index 222b47979..c2ff06a66 100644 --- a/src/buildstream/storage/_filebaseddirectory.py +++ b/src/buildstream/storage/_filebaseddirectory.py @@ -30,7 +30,6 @@ See also: :ref:`sandboxing`. import os import shutil import stat -import time from .directory import Directory, VirtualDirectoryError, _FileType from .. import utils @@ -79,7 +78,7 @@ 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=None, can_link=False ): """ See superclass Directory for arguments """ @@ -117,10 +116,8 @@ class FileBasedDirectory(Directory): ) if update_mtime: - cur_time = time.time() - for f in import_result.files_written: - os.utime(os.path.join(self.external_directory, f), times=(cur_time, cur_time)) + os.utime(os.path.join(self.external_directory, f), times=(update_mtime, update_mtime)) return import_result def import_single_file(self, external_pathspec): diff --git a/src/buildstream/storage/directory.py b/src/buildstream/storage/directory.py index 2d3dfd4da..771c11ae7 100644 --- a/src/buildstream/storage/directory.py +++ b/src/buildstream/storage/directory.py @@ -82,7 +82,7 @@ class Directory: *, filter_callback: Optional[Callable[[str], bool]] = None, report_written: bool = True, - update_mtime: bool = False, + update_mtime: Optional[float] = None, can_link: bool = False ) -> FileListResult: """Imports some or all files from external_path into this directory. @@ -98,12 +98,11 @@ class Directory: written. Defaults to true. If false, only a list of overwritten files is returned. update_mtime: Update the access and modification time - of each file copied to the current time. + of each file copied to the time specified in seconds. can_link: Whether it's OK to create a hard link to the original content, meaning the stored copy will change when the original files change. Setting this doesn't guarantee hard - links will be made. can_link will never be used if - update_mtime is set. + links will be made. Yields: A report of files imported and overwritten. |