repo: Add _ostree_repo_get_remote_option_inherit()
Split out from ostree-repo-pull.c. Still private but more reusable now.
This commit is contained in:
parent
b02777accd
commit
e592faec43
|
|
@ -196,6 +196,13 @@ _ostree_repo_get_remote_boolean_option (OstreeRepo *self,
|
||||||
gboolean *out_value,
|
gboolean *out_value,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
_ostree_repo_get_remote_option_inherit (OstreeRepo *self,
|
||||||
|
const char *remote_name,
|
||||||
|
const char *option_name,
|
||||||
|
char **out_value,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
OstreeFetcher *
|
OstreeFetcher *
|
||||||
_ostree_repo_remote_new_fetcher (OstreeRepo *self,
|
_ostree_repo_remote_new_fetcher (OstreeRepo *self,
|
||||||
const char *remote_name,
|
const char *remote_name,
|
||||||
|
|
|
||||||
|
|
@ -1245,35 +1245,6 @@ enqueue_one_object_request (OtPullData *pull_data,
|
||||||
soup_uri_free (obj_uri);
|
soup_uri_free (obj_uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
|
||||||
repo_get_remote_option_inherit (OstreeRepo *self,
|
|
||||||
const char *remote_name,
|
|
||||||
const char *option_name,
|
|
||||||
char **out_value,
|
|
||||||
GError **error)
|
|
||||||
{
|
|
||||||
OstreeRepo *parent = ostree_repo_get_parent (self);
|
|
||||||
g_autofree char *value = NULL;
|
|
||||||
gboolean ret = FALSE;
|
|
||||||
|
|
||||||
if (!_ostree_repo_get_remote_option (self, remote_name, option_name, NULL, &value, error))
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
if (value == NULL && parent != NULL)
|
|
||||||
{
|
|
||||||
if (!repo_get_remote_option_inherit (parent, remote_name, option_name, &value, error))
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Success here just means no error occurred during lookup,
|
|
||||||
* not necessarily that we found a value for the option name. */
|
|
||||||
ot_transfer_out_value (out_value, &value);
|
|
||||||
ret = TRUE;
|
|
||||||
|
|
||||||
out:
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
load_remote_repo_config (OtPullData *pull_data,
|
load_remote_repo_config (OtPullData *pull_data,
|
||||||
GKeyFile **out_keyfile,
|
GKeyFile **out_keyfile,
|
||||||
|
|
@ -1735,7 +1706,7 @@ ostree_repo_pull_with_options (OstreeRepo *self,
|
||||||
{
|
{
|
||||||
if (baseurl == NULL)
|
if (baseurl == NULL)
|
||||||
{
|
{
|
||||||
if (!repo_get_remote_option_inherit (self, remote_name_or_baseurl, "url", &baseurl, error))
|
if (!_ostree_repo_get_remote_option_inherit (self, remote_name_or_baseurl, "url", &baseurl, error))
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -355,6 +355,41 @@ _ostree_repo_get_remote_boolean_option (OstreeRepo *self,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
_ostree_repo_get_remote_option_inherit (OstreeRepo *self,
|
||||||
|
const char *remote_name,
|
||||||
|
const char *option_name,
|
||||||
|
char **out_value,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
OstreeRepo *parent = ostree_repo_get_parent (self);
|
||||||
|
g_autofree char *value = NULL;
|
||||||
|
gboolean ret = FALSE;
|
||||||
|
|
||||||
|
if (!_ostree_repo_get_remote_option (self,
|
||||||
|
remote_name, option_name,
|
||||||
|
NULL, &value, error))
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
if (value == NULL && parent != NULL)
|
||||||
|
{
|
||||||
|
if (!_ostree_repo_get_remote_option_inherit (parent,
|
||||||
|
remote_name, option_name,
|
||||||
|
&value, error))
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Success here just means no error occurred during lookup,
|
||||||
|
* not necessarily that we found a value for the option name. */
|
||||||
|
if (out_value != NULL)
|
||||||
|
*out_value = g_steal_pointer (&value);
|
||||||
|
|
||||||
|
ret = TRUE;
|
||||||
|
|
||||||
|
out:
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
OstreeFetcher *
|
OstreeFetcher *
|
||||||
_ostree_repo_remote_new_fetcher (OstreeRepo *self,
|
_ostree_repo_remote_new_fetcher (OstreeRepo *self,
|
||||||
const char *remote_name,
|
const char *remote_name,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue