Proper handling of custom image dirs, #1170 (#1171)

This commit is contained in:
Daniel Markstedt 2023-05-21 15:27:50 -07:00 committed by GitHub
parent 4580dd222e
commit fa475d8b12
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 14 deletions

View File

@ -102,12 +102,12 @@ class SysCmds:
return False return False
@staticmethod @staticmethod
def disk_space(): def disk_space(path):
""" """
Returns a (dict) with (int) total (int) used (int) free Takes (str) path with the path to the dir / mount point to inspect
This is the disk space information of the volume where this app is running Returns a (dict) with (int) total (int) used (int) free disk space
""" """
total, used, free = disk_usage(__file__) total, used, free = disk_usage(path)
return {"total": total, "used": used, "free": free} return {"total": total, "used": used, "free": free}
@staticmethod @staticmethod

View File

@ -218,7 +218,7 @@
<div> <div>
{% for subdir, group in formatted_image_files.items() %} {% for subdir, group in formatted_image_files.items() %}
<details class="subdir"{% if subdir == "images/" %} open{% endif %}> <details class="subdir"{% if subdir == env["image_root_dir"] + "/" %} open{% endif %}>
<summary class="dirname"> <summary class="dirname">
{{ subdir }} {{ subdir }}
</summary> </summary>
@ -371,7 +371,7 @@
{% endfor %} {% endfor %}
</div> </div>
{% endif %} {% endif %}
<p><small>{{ _("%(disk_space)s MiB disk space remaining on the system", disk_space=env["free_disk_space"]) }}</small></p> <p><small>{{ _("%(disk_space)s MiB disk space remaining for images", disk_space=env["free_disk_space"]) }}</small></p>
</section> </section>
<hr/> <hr/>

View File

@ -96,10 +96,11 @@ def get_env_info():
"ip_addr": ip_addr, "ip_addr": ip_addr,
"host": host, "host": host,
"system_name": sys_cmd.get_pretty_host(), "system_name": sys_cmd.get_pretty_host(),
"free_disk_space": int(sys_cmd.disk_space()["free"] / 1024 / 1024), "free_disk_space": int(sys_cmd.disk_space(server_info["image_dir"])["free"] / 1024 / 1024),
"locale": get_locale(), "locale": get_locale(),
"version": server_info["version"], "version": server_info["version"],
"image_dir": server_info["image_dir"], "image_dir": server_info["image_dir"],
"image_root_dir": Path(server_info["image_dir"]).name,
"netatalk_configured": sys_cmd.running_proc("afpd"), "netatalk_configured": sys_cmd.running_proc("afpd"),
"macproxy_configured": sys_cmd.running_proc("macproxy"), "macproxy_configured": sys_cmd.running_proc("macproxy"),
"cd_suffixes": tuple(server_info["sccd"]), "cd_suffixes": tuple(server_info["sccd"]),
@ -217,7 +218,9 @@ def index():
image_files = file_cmd.list_images() image_files = file_cmd.list_images()
config_files = file_cmd.list_config_files() config_files = file_cmd.list_config_files()
ip_addr, host = sys_cmd.get_ip_and_host() ip_addr, host = sys_cmd.get_ip_and_host()
formatted_image_files = format_image_list(image_files["files"], device_types) formatted_image_files = format_image_list(
image_files["files"], Path(server_info["image_dir"]).name, device_types
)
attached_images = [] attached_images = []
units = 0 units = 0

View File

@ -160,9 +160,12 @@ def get_image_description(file_suffix):
return file_suffix return file_suffix
def format_image_list(image_files, device_types=None): def format_image_list(image_files, rootdir, device_types=None):
""" """
Takes a (list) of (dict) image_files and optional (list) device_types Takes:
- (list) of (dict) image_files
- (str) rootdir, the name of the images root dir
- optional (list) device_types
Returns a formatted (dict) with groups of image_files per subdir key Returns a formatted (dict) with groups of image_files per subdir key
""" """
@ -174,16 +177,16 @@ def format_image_list(image_files, device_types=None):
subdir_path = findall("^.*/", image["name"]) subdir_path = findall("^.*/", image["name"])
if subdir_path: if subdir_path:
subdir = subdir_path[0] subdir = subdir_path[0]
if f"images/{subdir}" in subdir_image_files.keys(): if f"{rootdir}/{subdir}" in subdir_image_files.keys():
subdir_image_files[f"images/{subdir}"].append(image) subdir_image_files[f"{rootdir}/{subdir}"].append(image)
else: else:
subdir_image_files[f"images/{subdir}"] = [image] subdir_image_files[f"{rootdir}/{subdir}"] = [image]
else: else:
root_image_files.append(image) root_image_files.append(image)
formatted_image_files = dict(sorted(subdir_image_files.items())) formatted_image_files = dict(sorted(subdir_image_files.items()))
if root_image_files: if root_image_files:
formatted_image_files["images/"] = root_image_files formatted_image_files[f"{rootdir}/"] = root_image_files
return formatted_image_files return formatted_image_files