From 87e564eeaa569adde786c4c39a2626ca3d687436 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Tue, 1 Sep 2020 12:00:32 +0200 Subject: [PATCH] deltas: Add _ostree_get_relative_static_delta_index_path() This gets the subpath for a delta index file, which is of the form "delta-indexes/$commit.index", that contains all the deltas going to the particular commit. --- src/libostree/ostree-core-private.h | 3 +++ src/libostree/ostree-core.c | 30 ++++++++++++++++++++++++----- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/libostree/ostree-core-private.h b/src/libostree/ostree-core-private.h index 5d9d948a..89d95ad9 100644 --- a/src/libostree/ostree-core-private.h +++ b/src/libostree/ostree-core-private.h @@ -135,6 +135,9 @@ _ostree_get_relative_static_delta_part_path (const char *from, const char *to, guint i); +char * +_ostree_get_relative_static_delta_index_path (const char *to); + static inline char * _ostree_get_commitpartial_path (const char *checksum) { return g_strconcat ("state/", checksum, ".commitpartial", NULL); diff --git a/src/libostree/ostree-core.c b/src/libostree/ostree-core.c index 29528fa5..f822101a 100644 --- a/src/libostree/ostree-core.c +++ b/src/libostree/ostree-core.c @@ -1814,15 +1814,15 @@ _ostree_get_relative_object_path (const char *checksum, return g_string_free (path, FALSE); } -char * -_ostree_get_relative_static_delta_path (const char *from, - const char *to, - const char *target) +static GString * +static_delta_path_base (const char *dir, + const char *from, + const char *to) { guint8 csum_to[OSTREE_SHA256_DIGEST_LEN]; char to_b64[44]; guint8 csum_to_copy[OSTREE_SHA256_DIGEST_LEN]; - GString *ret = g_string_new ("deltas/"); + GString *ret = g_string_new (dir); ostree_checksum_inplace_to_bytes (to, csum_to); ostree_checksum_b64_inplace_from_bytes (csum_to, to_b64); @@ -1851,6 +1851,16 @@ _ostree_get_relative_static_delta_path (const char *from, g_string_append_c (ret, '/'); g_string_append (ret, to_b64 + 2); + return ret; +} + +char * +_ostree_get_relative_static_delta_path (const char *from, + const char *to, + const char *target) +{ + GString *ret = static_delta_path_base ("deltas/", from, to); + if (target != NULL) { g_string_append_c (ret, '/'); @@ -1883,6 +1893,16 @@ _ostree_get_relative_static_delta_part_path (const char *from, return _ostree_get_relative_static_delta_path (from, to, partstr); } +char * +_ostree_get_relative_static_delta_index_path (const char *to) +{ + GString *ret = static_delta_path_base ("delta-indexes/", NULL, to); + + g_string_append (ret, ".index"); + + return g_string_free (ret, FALSE); +} + gboolean _ostree_parse_delta_name (const char *delta_name, char **out_from,