diff options
author | Gökçen Nurlu <gnurlu1@bloomberg.net> | 2018-06-28 12:02:03 +0100 |
---|---|---|
committer | Gökçen Nurlu <gnurlu1@bloomberg.net> | 2018-06-28 12:02:03 +0100 |
commit | 60cf4f79d725443ffad47270ff73ed44cb353ad2 (patch) | |
tree | ca739e85deaaab53926a7b556723d22db3bc68c5 | |
parent | 89b3d794981a00ecdd82378fa4ec007fc50664f2 (diff) | |
download | buildstream-gokcen/source_transform.tar.gz |
fixup! Add dep_transform examplegokcen/source_transform
-rw-r--r-- | buildstream/plugins/sources/dep_transform.py | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/buildstream/plugins/sources/dep_transform.py b/buildstream/plugins/sources/dep_transform.py index f0d02506d..95a30800b 100644 --- a/buildstream/plugins/sources/dep_transform.py +++ b/buildstream/plugins/sources/dep_transform.py @@ -53,7 +53,7 @@ class DepTransform(SourceTransform): def configure(self, node): self.node_validate(node, ['ref'] + Source.COMMON_CONFIG_KEYS) - self.ref = self.node_get_member(node, str, 'ref', '').strip() + self.ref = self.node_get_member(node, str, 'ref', None) @property def mirror(self): @@ -70,12 +70,10 @@ class DepTransform(SourceTransform): self.host_dep = utils.get_host_tool('dep') def get_unique_key(self): - # TODO: This plugin's inputs are actually previous source. What should - # we do here? return (self.ref,) def get_consistency(self): - if self.ref == '': + if self.ref is None: return Consistency.INCONSISTENT for dest in (GOPKG_LOCK_FILE, GOPKG_VENDOR_DIR): dest_path = os.path.join(self.mirror, dest) @@ -83,7 +81,7 @@ class DepTransform(SourceTransform): return Consistency.RESOLVED lock_file_path = os.path.join(self.mirror, GOPKG_LOCK_FILE) with open(lock_file_path, encoding='utf-8') as lock_file: - if lock_file.read().strip() == self.ref: + if lock_file.read().strip() == self.ref.strip(): return Consistency.CACHED return Consistency.RESOLVED @@ -169,20 +167,16 @@ class DepTransform(SourceTransform): def stage(self, directory): with self.timed_activity("Staging DepTransform source from based on Gopkg.lock", silent_nested=True): - shutil.copy(os.path.join(self.mirror, GOPKG_LOCK_FILE), + utils.safe_copy(os.path.join(self.mirror, GOPKG_LOCK_FILE), os.path.join(directory, GOPKG_LOCK_FILE)) # FIXME: Should we ever need to support one, this may # break on platforms that don't support symlinks if # a project contains broken symlinks. target_vendor_dir = os.path.join(directory, GOPKG_VENDOR_DIR) try: - shutil.copytree(os.path.join(self.mirror, GOPKG_VENDOR_DIR), - target_vendor_dir, - symlinks=True) - except FileExistsError: - raise SourceError("{}: Unable to stage vendor directory because it already exists here '{}'" - .format(self, target_vendor_dir)) - except shutil.Error as err: + utils.copy_files(os.path.join(self.mirror, GOPKG_VENDOR_DIR), + target_vendor_dir) + except utils.UtilError as err: raise SourceError("{}: Unable to stage vendor directory at '{}'" .format(self, target_vendor_dir)) from err |