From 530cadc72dec4c7eddf79d7ac7800125c513ff8d Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Thu, 16 Jan 2025 17:36:43 +0100 Subject: [PATCH] utils: Recognize .zst extension The repo data can be compressed with ZSTD, thus teach the as_utils_install_metadata_file() what to do with these files. --- src/as-metadata.c | 6 ++++++ src/as-utils.c | 12 +++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/as-metadata.c b/src/as-metadata.c index 1ef8248b..89d27b25 100644 --- a/src/as-metadata.c +++ b/src/as-metadata.c @@ -88,14 +88,20 @@ as_metadata_file_guess_style (const gchar *filename) return AS_FORMAT_STYLE_CATALOG; if (g_str_has_suffix (filename, ".xml.gz")) return AS_FORMAT_STYLE_CATALOG; + if (g_str_has_suffix (filename, ".xml.zst")) + return AS_FORMAT_STYLE_CATALOG; if (g_str_has_suffix (filename, ".yml")) return AS_FORMAT_STYLE_CATALOG; if (g_str_has_suffix (filename, ".yml.gz")) return AS_FORMAT_STYLE_CATALOG; + if (g_str_has_suffix (filename, ".yml.zst")) + return AS_FORMAT_STYLE_CATALOG; if (g_str_has_suffix (filename, ".yaml")) return AS_FORMAT_STYLE_CATALOG; if (g_str_has_suffix (filename, ".yaml.gz")) return AS_FORMAT_STYLE_CATALOG; + if (g_str_has_suffix (filename, ".yaml.zst")) + return AS_FORMAT_STYLE_CATALOG; if (g_str_has_suffix (filename, ".appdata.xml")) return AS_FORMAT_STYLE_METAINFO; if (g_str_has_suffix (filename, ".appdata.xml.in")) diff --git a/src/as-utils.c b/src/as-utils.c index aa7c6da4..958e536b 100644 --- a/src/as-utils.c +++ b/src/as-utils.c @@ -2580,8 +2580,10 @@ as_utils_install_metadata_file (AsMetadataLocation location, case AS_FORMAT_STYLE_CATALOG: if (g_str_has_suffix (filename, ".yml") || g_str_has_suffix (filename, ".yml.gz") || + g_str_has_suffix (filename, ".yml.zst") || g_str_has_suffix (filename, ".yaml") || - g_str_has_suffix (filename, ".yaml.gz")) { + g_str_has_suffix (filename, ".yaml.gz") || + g_str_has_suffix (filename, ".yaml.zst")) { path = g_build_filename (as_metadata_location_get_prefix (location), "swcatalog", "yaml", @@ -2628,7 +2630,8 @@ as_utils_install_metadata_file (AsMetadataLocation location, default: basename = g_path_get_basename (filename); - if (g_str_has_suffix (basename, ".tar.gz")) { + if (g_str_has_suffix (basename, ".tar.gz") || + g_str_has_suffix (basename, ".tar.zst")) { gchar *tmp; g_autofree gchar *tmp2 = NULL; /* we may have an icon tarball */ @@ -2659,7 +2662,10 @@ as_utils_install_metadata_file (AsMetadataLocation location, } /* guess origin */ - tmp2 = g_strdup_printf ("-icons-%s.tar.gz", icons_size_id); + if (g_str_has_suffix (basename, ".tar.gz")) + tmp2 = g_strdup_printf ("-icons-%s.tar.gz", icons_size_id); + else + tmp2 = g_strdup_printf ("-icons-%s.tar.zst", icons_size_id); tmp = g_strstr_len (basename, -1, tmp2); if (tmp != NULL) { *tmp = '\0';