core: Add utility functions to convert a OstreeObjectType to/from a string
This commit is contained in:
parent
b8e8b58585
commit
8ab2296a70
|
|
@ -480,12 +480,53 @@ ostree_parse_metadata_file (GFile *file,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *
|
||||||
|
ostree_object_type_to_string (OstreeObjectType objtype)
|
||||||
|
{
|
||||||
|
switch (objtype)
|
||||||
|
{
|
||||||
|
case OSTREE_OBJECT_TYPE_RAW_FILE:
|
||||||
|
return "file";
|
||||||
|
case OSTREE_OBJECT_TYPE_ARCHIVED_FILE_CONTENT:
|
||||||
|
return "archive-content";
|
||||||
|
case OSTREE_OBJECT_TYPE_ARCHIVED_FILE_META:
|
||||||
|
return "archive-meta";
|
||||||
|
case OSTREE_OBJECT_TYPE_DIR_TREE:
|
||||||
|
return "dirtree";
|
||||||
|
case OSTREE_OBJECT_TYPE_DIR_META:
|
||||||
|
return "dirmeta";
|
||||||
|
case OSTREE_OBJECT_TYPE_COMMIT:
|
||||||
|
return "commit";
|
||||||
|
default:
|
||||||
|
g_assert_not_reached ();
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
OstreeObjectType
|
||||||
|
ostree_object_type_from_string (const char *str)
|
||||||
|
{
|
||||||
|
if (!strcmp (str, "file"))
|
||||||
|
return OSTREE_OBJECT_TYPE_RAW_FILE;
|
||||||
|
else if (!strcmp (str, "archive-content"))
|
||||||
|
return OSTREE_OBJECT_TYPE_ARCHIVED_FILE_CONTENT;
|
||||||
|
else if (!strcmp (str, "archive-meta"))
|
||||||
|
return OSTREE_OBJECT_TYPE_ARCHIVED_FILE_META;
|
||||||
|
else if (!strcmp (str, "dirtree"))
|
||||||
|
return OSTREE_OBJECT_TYPE_DIR_TREE;
|
||||||
|
else if (!strcmp (str, "dirmeta"))
|
||||||
|
return OSTREE_OBJECT_TYPE_DIR_META;
|
||||||
|
else if (!strcmp (str, "commit"))
|
||||||
|
return OSTREE_OBJECT_TYPE_COMMIT;
|
||||||
|
g_assert_not_reached ();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
char *
|
char *
|
||||||
ostree_get_relative_object_path (const char *checksum,
|
ostree_get_relative_object_path (const char *checksum,
|
||||||
OstreeObjectType type)
|
OstreeObjectType type)
|
||||||
{
|
{
|
||||||
GString *path;
|
GString *path;
|
||||||
const char *type_string;
|
|
||||||
|
|
||||||
g_assert (strlen (checksum) == 64);
|
g_assert (strlen (checksum) == 64);
|
||||||
|
|
||||||
|
|
@ -494,27 +535,9 @@ ostree_get_relative_object_path (const char *checksum,
|
||||||
g_string_append_len (path, checksum, 2);
|
g_string_append_len (path, checksum, 2);
|
||||||
g_string_append_c (path, '/');
|
g_string_append_c (path, '/');
|
||||||
g_string_append (path, checksum + 2);
|
g_string_append (path, checksum + 2);
|
||||||
switch (type)
|
g_string_append_c (path, '.');
|
||||||
{
|
g_string_append (path, ostree_object_type_to_string (type));
|
||||||
case OSTREE_OBJECT_TYPE_RAW_FILE:
|
|
||||||
type_string = ".file";
|
|
||||||
break;
|
|
||||||
case OSTREE_OBJECT_TYPE_ARCHIVED_FILE:
|
|
||||||
type_string = ".archive";
|
|
||||||
break;
|
|
||||||
case OSTREE_OBJECT_TYPE_DIR_TREE:
|
|
||||||
type_string = ".dirtree";
|
|
||||||
break;
|
|
||||||
case OSTREE_OBJECT_TYPE_DIR_META:
|
|
||||||
type_string = ".dirmeta";
|
|
||||||
break;
|
|
||||||
case OSTREE_OBJECT_TYPE_COMMIT:
|
|
||||||
type_string = ".commit";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
g_assert_not_reached ();
|
|
||||||
}
|
|
||||||
g_string_append (path, type_string);
|
|
||||||
return g_string_free (path, FALSE);
|
return g_string_free (path, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -85,11 +85,26 @@ typedef enum {
|
||||||
*/
|
*/
|
||||||
#define OSTREE_COMMIT_GVARIANT_FORMAT "(ua{sv}ssstss)"
|
#define OSTREE_COMMIT_GVARIANT_FORMAT "(ua{sv}ssstss)"
|
||||||
|
|
||||||
|
/* Archive file objects:
|
||||||
|
* u - Version
|
||||||
|
* u - uid
|
||||||
|
* u - gid
|
||||||
|
* u - mode
|
||||||
|
* u - rdev
|
||||||
|
* s - symlink target
|
||||||
|
* a(ayay) - xattrs
|
||||||
|
*/
|
||||||
|
#define OSTREE_ARCHIVED_FILE_VARIANT_FORMAT G_VARIANT_TYPE ("(uuuuusa(ayay))")
|
||||||
|
|
||||||
gboolean ostree_validate_checksum_string (const char *sha256,
|
gboolean ostree_validate_checksum_string (const char *sha256,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
|
||||||
void ostree_checksum_update_stat (GChecksum *checksum, guint32 uid, guint32 gid, guint32 mode);
|
void ostree_checksum_update_stat (GChecksum *checksum, guint32 uid, guint32 gid, guint32 mode);
|
||||||
|
|
||||||
|
const char * ostree_object_type_to_string (OstreeObjectType objtype);
|
||||||
|
|
||||||
|
OstreeObjectType ostree_object_type_from_string (const char *str);
|
||||||
|
|
||||||
char *ostree_get_relative_object_path (const char *checksum,
|
char *ostree_get_relative_object_path (const char *checksum,
|
||||||
OstreeObjectType type);
|
OstreeObjectType type);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue