Make flatpak_is_valid_branch set a GError

Return detailed information about the problem with the branch in
the GError. Update all callers.
tingping/wmclass
Matthias Clasen 2016-09-13 13:28:42 -04:00
parent fe91657a44
commit 06c7aca9f9
7 changed files with 37 additions and 21 deletions

View File

@ -924,8 +924,8 @@ flatpak_builtin_build_bundle (int argc, char **argv, GCancellable *cancellable,
if (!flatpak_is_valid_name (name, &my_error))
return flatpak_fail (error, _("'%s' is not a valid name: %s"), name, my_error->message);
if (!flatpak_is_valid_branch (branch))
return flatpak_fail (error, _("'%s' is not a valid branch name"), branch);
if (!flatpak_is_valid_branch (branch, &my_error))
return flatpak_fail (error, _("'%s' is not a valid branch name: %s"), branch, &my_error);
if (opt_runtime)
full_branch = flatpak_build_runtime_ref (name, branch, opt_arch);

View File

@ -499,6 +499,7 @@ flatpak_builtin_build_export (int argc, char **argv, GCancellable *cancellable,
g_autoptr(OstreeMutableTree) files_mtree = NULL;
g_autoptr(OstreeMutableTree) export_mtree = NULL;
g_autoptr(GKeyFile) metakey = NULL;
g_autoptr(GError) my_error = NULL;
gsize metadata_size;
g_autofree char *subject = NULL;
g_autofree char *body = NULL;
@ -526,9 +527,9 @@ flatpak_builtin_build_export (int argc, char **argv, GCancellable *cancellable,
else
branch = "master";
if (!flatpak_is_valid_branch (branch))
if (!flatpak_is_valid_branch (branch, &my_error))
{
flatpak_fail (error, _("'%s' is not a valid branch name"), branch);
flatpak_fail (error, _("'%s' is not a valid branch name: %s"), branch, my_error->message);
goto out;
}

View File

@ -100,8 +100,8 @@ flatpak_builtin_build_init (int argc, char **argv, GCancellable *cancellable, GE
if (!flatpak_is_valid_name (sdk, &my_error))
return flatpak_fail (error, _("'%s' is not a valid sdk name: %s"), sdk, my_error->message);
if (!flatpak_is_valid_branch (branch))
return flatpak_fail (error, _("'%s' is not a valid branch name"), branch);
if (!flatpak_is_valid_branch (branch, &my_error))
return flatpak_fail (error, _("'%s' is not a valid branch name: %s"), branch, my_error->message);
runtime_ref = flatpak_build_untyped_ref (runtime, branch, opt_arch);
sdk_ref = flatpak_build_untyped_ref (sdk, branch, opt_arch);

View File

@ -83,8 +83,8 @@ flatpak_builtin_build_sign (int argc, char **argv, GCancellable *cancellable, GE
if (!flatpak_is_valid_name (id, &my_error))
return flatpak_fail (error, _("'%s' is not a valid name: %s"), id, my_error->message);
if (!flatpak_is_valid_branch (branch))
return flatpak_fail (error, _("'%s' is not a valid branch name"), branch);
if (!flatpak_is_valid_branch (branch, &my_error))
return flatpak_fail (error, _("'%s' is not a valid branch name: %s"), branch, my_error->message);
if (opt_gpg_key_ids == NULL)
return flatpak_fail (error, _("No gpg key ids specified"));

View File

@ -4311,9 +4311,9 @@ find_matching_refs (GHashTable *refs,
return NULL;
}
if (opt_branch && !flatpak_is_valid_branch (opt_branch))
if (opt_branch && !flatpak_is_valid_branch (opt_branch, &local_error))
{
flatpak_fail (error, "'%s' is not a valid branch name", opt_branch);
flatpak_fail (error, "'%s' is not a valid branch name: %s", opt_branch, local_error->message);
return NULL;
}

View File

@ -527,6 +527,7 @@ is_valid_branch_character (gint c)
/** flatpak_is_valid_branch:
* @string: The string to check
* @error: return location for an error
*
* Checks if @string is a valid branch name.
*
@ -540,7 +541,8 @@ is_valid_branch_character (gint c)
* Since: 2.26
*/
gboolean
flatpak_is_valid_branch (const char *string)
flatpak_is_valid_branch (const char *string,
GError **error)
{
guint len;
gboolean ret;
@ -553,19 +555,31 @@ flatpak_is_valid_branch (const char *string)
len = strlen (string);
if (G_UNLIKELY (len == 0))
goto out;
{
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
"Branch can't be empty");
goto out;
}
end = string + len;
s = string;
if (G_UNLIKELY (!is_valid_initial_branch_character (*s)))
goto out;
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
"Branch can't start with %c", *s);
goto out;
}
s += 1;
while (s != end)
{
if (G_UNLIKELY (!is_valid_branch_character (*s)))
goto out;
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
"Branch can't contain %c", *s);
goto out;
}
s += 1;
}
@ -607,9 +621,9 @@ flatpak_decompose_ref (const char *full_ref,
return NULL;
}
if (!flatpak_is_valid_branch (parts[3]))
if (!flatpak_is_valid_branch (parts[3], &local_error))
{
flatpak_fail (error, "Invalid branch %s", parts[3]);
flatpak_fail (error, "Invalid branch %s: %s", parts[3], local_error->message);
return NULL;
}
@ -654,8 +668,8 @@ flatpak_split_partial_ref_arg (char *partial_ref,
branch = slash + 1;
if (strlen (branch) > 0)
{
if (!flatpak_is_valid_branch (branch))
return flatpak_fail (error, "Invalid branch %s", branch);
if (!flatpak_is_valid_branch (branch, &local_error))
return flatpak_fail (error, "Invalid branch %s: %s", branch, local_error->message);
}
else
branch = NULL;
@ -686,9 +700,9 @@ flatpak_compose_ref (gboolean app,
return NULL;
}
if (branch && !flatpak_is_valid_branch (branch))
if (branch && !flatpak_is_valid_branch (branch, &local_error))
{
flatpak_fail (error, "'%s' is not a valid branch name", branch);
flatpak_fail (error, "'%s' is not a valid branch name: %s", branch, local_error->message);
return NULL;
}

View File

@ -80,7 +80,8 @@ gboolean flatpak_has_name_prefix (const char *string,
const char *name);
gboolean flatpak_is_valid_name (const char *string,
GError **error);
gboolean flatpak_is_valid_branch (const char *string);
gboolean flatpak_is_valid_branch (const char *string,
GError **error);
char **flatpak_decompose_ref (const char *ref,
GError **error);