From 205a84b36e44808b26ccecbf490e58843548d40c Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Wed, 7 Jun 2017 14:50:51 +0100 Subject: [PATCH] remote-add: Add a --collection-id argument to the built-in add command MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This allows newly configured remotes to have their collection ID specified, so that refs from them can be downloaded from peers as well as the upstream collection, using the remote’s configuration. Signed-off-by: Philip Withnall Closes: #924 Approved by: cgwalters --- man/ostree-remote.xml | 10 ++++++++++ src/ostree/ot-remote-builtin-add.c | 13 +++++++++++++ 2 files changed, 23 insertions(+) diff --git a/man/ostree-remote.xml b/man/ostree-remote.xml index 88e61ac0..2bb8aa71 100644 --- a/man/ostree-remote.xml +++ b/man/ostree-remote.xml @@ -137,6 +137,16 @@ Boston, MA 02111-1307, USA. ostree remote gpg-import --keyring=FILE. + + + =COLLECTION-ID + + + Set the collection ID for the remote to a value provided by + the repository owner, which allows refs from this remote to be + shared peer to peer. + + diff --git a/src/ostree/ot-remote-builtin-add.c b/src/ostree/ot-remote-builtin-add.c index 3e3aeda9..db115efd 100644 --- a/src/ostree/ot-remote-builtin-add.c +++ b/src/ostree/ot-remote-builtin-add.c @@ -31,6 +31,9 @@ static gboolean opt_no_gpg_verify; static gboolean opt_if_not_exists; static char *opt_gpg_import; static char *opt_contenturl; +#ifdef OSTREE_ENABLE_EXPERIMENTAL_API +static char *opt_collection_id; +#endif /* OSTREE_ENABLE_EXPERIMENTAL_API */ static GOptionEntry option_entries[] = { { "set", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_set, "Set config option KEY=VALUE for remote", "KEY=VALUE" }, @@ -38,6 +41,10 @@ static GOptionEntry option_entries[] = { { "if-not-exists", 0, 0, G_OPTION_ARG_NONE, &opt_if_not_exists, "Do nothing if the provided remote exists", NULL }, { "gpg-import", 0, 0, G_OPTION_ARG_FILENAME, &opt_gpg_import, "Import GPG key from FILE", "FILE" }, { "contenturl", 0, 0, G_OPTION_ARG_STRING, &opt_contenturl, "Use URL when fetching content", "URL" }, +#ifdef OSTREE_ENABLE_EXPERIMENTAL_API + { "collection-id", 0, 0, G_OPTION_ARG_STRING, &opt_collection_id, + "Globally unique ID for this repository as an collection of refs for redistribution to other repositories", "COLLECTION-ID" }, +#endif /* OSTREE_ENABLE_EXPERIMENTAL_API */ { NULL } }; @@ -110,6 +117,12 @@ ot_remote_builtin_add (int argc, char **argv, GCancellable *cancellable, GError "gpg-verify", g_variant_new_variant (g_variant_new_boolean (FALSE))); +#ifdef OSTREE_ENABLE_EXPERIMENTAL_API + if (opt_collection_id != NULL) + g_variant_builder_add (optbuilder, "{s@v}", "collection-id", + g_variant_new_variant (g_variant_new_take_string (g_steal_pointer (&opt_collection_id)))); +#endif /* OSTREE_ENABLE_EXPERIMENTAL_API */ + options = g_variant_ref_sink (g_variant_builder_end (optbuilder)); if (!ostree_repo_remote_change (repo, NULL,