From 65e7969b0bd023ccbd532a8e843dbf54341fb2cb Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Wed, 13 Apr 2016 16:44:21 -0400 Subject: [PATCH] OstreeRepo: add extensions directory It's very useful for third-party applications to have someplace to store their data guaranteed to be on the same device as the repo (thus ensuring hardlinks) while still being shielded away from any of OSTree's timely garbage collections. We create a new "extensions/" subdirectory where apps can include whatever they wish in "extensions/myapp/". This subdirectory is completely unmanaged by ostree. NB: I didn't bother making it a member of the OstreeRepo proper since we don't really use it for anything else yet. Closes: #286 Approved by: cgwalters --- src/libostree/ostree-repo.c | 7 +++++++ tests/basic-test.sh | 8 ++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c index c395b1dc..7caf528e 100644 --- a/src/libostree/ostree-repo.c +++ b/src/libostree/ostree-repo.c @@ -2210,6 +2210,13 @@ ostree_repo_create (OstreeRepo *self, if (!g_file_make_directory (self->tmp_dir, cancellable, error)) goto out; + { + g_autoptr(GFile) extensions_dir = + g_file_resolve_relative_path (self->repodir, "extensions"); + if (!g_file_make_directory (extensions_dir, cancellable, error)) + goto out; + } + g_clear_object (&child); child = g_file_get_child (self->repodir, "refs"); if (!g_file_make_directory (child, cancellable, error)) diff --git a/tests/basic-test.sh b/tests/basic-test.sh index a44ee630..0373fcbc 100755 --- a/tests/basic-test.sh +++ b/tests/basic-test.sh @@ -19,7 +19,7 @@ set -euo pipefail -echo "1..55" +echo "1..56" $OSTREE checkout test2 checkout-test2 echo "ok checkout" @@ -508,5 +508,9 @@ cd .. if cmp timestamp-{orig,new}.txt; then assert_not_reached "failed to update mtime on repo" fi - echo "ok mtime updated" + +cd ${test_tmpdir} +$OSTREE init --mode=bare --repo=repo-extensions +assert_has_dir repo-extensions/extensions +echo "ok extensions dir"