def _create_codebase_snapshot(self):
def ignored_files(path, names): # see https://docs.python.org/2/library/shutil.html#shutil.copytree
if os.path.abspath(path) == self.export_directory or ".git" in path or ".idea" in path:
return names
print "\t", path
include = [".gml", ".py"]
only_files = (name for name in names if os.path.isfile(os.path.join(path, name)))
ignored = [name for name in only_files
if not any(name.endswith(ext) for ext in include)]
return ignored
code_source_directory = self.local_base_path
code_export_directory = os.path.join(self.export_directory, self.code_base_id)
if os.path.exists(code_export_directory):
raise DeploymentError("The export directory exists!")
code_subdir_name = "sca"
src_dir = os.path.join(code_export_directory, code_subdir_name)
shutil.copytree(code_source_directory, src_dir, ignore=ignored_files)
tar = shutil.make_archive(code_export_directory,
format="gztar",
root_dir=self.export_directory,
base_dir=os.path.join(self.code_base_id, code_subdir_name))
if self.cleanup:
shutil.rmtree(code_export_directory)
self._generated_files.add(tar)
评论列表
文章目录