/*
* Copyright © 2020 Red Hat, Inc
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see .
*
* Authors:
* Alexander Larsson
*/
#include
#include
#ifndef __FLATPAK_REF_UTILS_H__
#define __FLATPAK_REF_UTILS_H__
gboolean flatpak_is_valid_name (const char *string,
gssize len,
GError **error);
gboolean flatpak_is_valid_branch (const char *string,
gssize len,
GError **error);
gboolean flatpak_is_valid_arch (const char *string,
gssize len,
GError **error);
gboolean flatpak_has_name_prefix (const char *string,
const char *name);
gboolean flatpak_name_matches_one_wildcard_prefix (const char *string,
const char * const *maybe_wildcard_prefixes,
gboolean require_exact_match);
char * flatpak_make_valid_id_prefix (const char *orig_id);
gboolean flatpak_id_has_subref_suffix (const char *id,
gssize id_len);
gboolean flatpak_is_app_runtime_or_appstream_ref (const char *ref);
char * flatpak_get_arch_for_ref (const char *ref);
const char *flatpak_get_compat_arch_reverse (const char *compat_arch);
FlatpakKinds flatpak_kinds_from_kind (FlatpakRefKind kind);
typedef struct _FlatpakDecomposed FlatpakDecomposed;
FlatpakDecomposed *flatpak_decomposed_new_from_ref (const char *ref,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_col_ref (const char *ref,
const char *collection_id,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_refspec (const char *refspec,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_ref_take (char *ref,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_refspec_take (char *refspec,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_parts (FlatpakKinds kind,
const char *id,
const char *arch,
const char *branch,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_decomposed (FlatpakDecomposed *ref,
FlatpakKinds opt_kind,
const char *opt_id,
const char *opt_arch,
const char *opt_branch,
GError **error);
FlatpakDecomposed *flatpak_decomposed_new_from_pref (FlatpakKinds kind,
const char *pref,
GError **error);
FlatpakDecomposed *flatpak_decomposed_ref (FlatpakDecomposed *ref);
void flatpak_decomposed_unref (FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_ref (FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_refspec (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_ref (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_refspec (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_remote (FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_collection_id (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_collection_id (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_equal (FlatpakDecomposed *ref_a,
FlatpakDecomposed *ref_b);
gboolean flatpak_decomposed_equal_except_branch (FlatpakDecomposed *ref_a,
FlatpakDecomposed *ref_b);
gboolean flatpak_decomposed_equal_except_arch (FlatpakDecomposed *ref_a,
FlatpakDecomposed *ref_b);
gint flatpak_decomposed_strcmp (FlatpakDecomposed *ref_a,
FlatpakDecomposed *ref_b);
gint flatpak_decomposed_strcmp_p (FlatpakDecomposed **ref_a,
FlatpakDecomposed **ref_b);
guint flatpak_decomposed_hash (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_is_app (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_is_runtime (FlatpakDecomposed *ref);
FlatpakKinds flatpak_decomposed_get_kinds (FlatpakDecomposed *ref);
FlatpakRefKind flatpak_decomposed_get_kind (FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_kind_str (FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_kind_metadata_group(FlatpakDecomposed *ref);
const char * flatpak_decomposed_get_pref (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_pref (FlatpakDecomposed *ref);
const char * flatpak_decomposed_peek_id (FlatpakDecomposed *ref,
gsize *out_len);
char * flatpak_decomposed_dup_id (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_readable_id (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_is_id (FlatpakDecomposed *ref,
const char *id);
gboolean flatpak_decomposed_id_has_suffix (FlatpakDecomposed *ref,
const char *suffix);
gboolean flatpak_decomposed_id_has_prefix (FlatpakDecomposed *ref,
const char *prefix);
gboolean flatpak_decomposed_is_id_fuzzy (FlatpakDecomposed *ref,
const char *id);
gboolean flatpak_decomposed_id_is_subref (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_id_is_subref_of (FlatpakDecomposed *ref,
FlatpakDecomposed *parent_ref);
const char * flatpak_decomposed_peek_arch (FlatpakDecomposed *ref,
gsize *out_len);
char * flatpak_decomposed_dup_arch (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_is_arch (FlatpakDecomposed *ref,
const char *arch);
gboolean flatpak_decomposed_is_arches (FlatpakDecomposed *ref,
gssize len,
const char **arches);
const char * flatpak_decomposed_peek_branch (FlatpakDecomposed *ref,
gsize *out_len);
const char * flatpak_decomposed_get_branch (FlatpakDecomposed *ref);
char * flatpak_decomposed_dup_branch (FlatpakDecomposed *ref);
gboolean flatpak_decomposed_is_branch (FlatpakDecomposed *ref,
const char *branch);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (FlatpakDecomposed, flatpak_decomposed_unref)
FlatpakKinds flatpak_kinds_from_bools (gboolean app,
gboolean runtime);
gboolean flatpak_split_partial_ref_arg (const char *partial_ref,
FlatpakKinds default_kinds,
const char *default_arch,
const char *default_branch,
FlatpakKinds *out_kinds,
char **out_id,
char **out_arch,
char **out_branch,
GError **error);
gboolean flatpak_split_partial_ref_arg_novalidate (const char *partial_ref,
FlatpakKinds default_kinds,
const char *default_arch,
const char *default_branch,
FlatpakKinds *out_kinds,
char **out_id,
char **out_arch,
char **out_branch);
int flatpak_compare_ref (const char *ref1,
const char *ref2);
char * flatpak_build_untyped_ref (const char *runtime,
const char *branch,
const char *arch);
char * flatpak_build_runtime_ref (const char *runtime,
const char *branch,
const char *arch);
char * flatpak_build_app_ref (const char *app,
const char *branch,
const char *arch);
#endif /* __FLATPAK_REF_UTILS_H__ */