Fixes for archiving paths in backup, fake meta data

This commit is contained in:
ChrisTerBeke 2018-05-08 11:46:09 +02:00
parent ce0c14451f
commit a4882d8f83

View file

@ -35,9 +35,13 @@ class Backup:
self.zip_file = archive self.zip_file = archive
self.meta_data = { self.meta_data = {
"cura_release": cura_release "cura_release": cura_release,
"machine_count": 0,
"material_count": 0,
"profile_count": 0,
"plugin_count": 0
} }
# TODO: fill meta data with machine/material/etc counts. # TODO: fill meta data with real machine/material/etc counts.
@staticmethod @staticmethod
def _makeArchive(root_path: str) -> Optional[bytes]: def _makeArchive(root_path: str) -> Optional[bytes]:
@ -46,7 +50,6 @@ class Backup:
:param root_path: The root directory to archive recursively. :param root_path: The root directory to archive recursively.
:return: The archive as bytes. :return: The archive as bytes.
""" """
parent_folder = os.path.dirname(root_path)
contents = os.walk(root_path) contents = os.walk(root_path)
try: try:
buffer = io.BytesIO() buffer = io.BytesIO()
@ -55,13 +58,13 @@ class Backup:
for folder_name in folders: for folder_name in folders:
# Add all folders, even empty ones. # Add all folders, even empty ones.
absolute_path = os.path.join(root, folder_name) absolute_path = os.path.join(root, folder_name)
relative_path = absolute_path.replace(parent_folder + '\\', '') relative_path = absolute_path[len(root_path) + len(os.sep):]
archive.write(relative_path) archive.write(absolute_path, relative_path)
for file_name in files: for file_name in files:
# Add all files. # Add all files.
absolute_path = os.path.join(root, file_name) absolute_path = os.path.join(root, file_name)
relative_path = absolute_path.replace(parent_folder + '\\', '') relative_path = absolute_path[len(root_path) + len(os.sep):]
archive.write(relative_path) archive.write(absolute_path, relative_path)
archive.close() archive.close()
return buffer.getvalue() return buffer.getvalue()
except (IOError, OSError, BadZipfile) as error: except (IOError, OSError, BadZipfile) as error: