upgrader: Add ostree_sysroot_upgrader_dup_origin()

Convenience function returns a copy of the origin file, useful when
modifying it.
This commit is contained in:
Matthew Barnes 2015-10-06 11:24:23 -04:00
parent 442dcec43b
commit 41ab26356c
3 changed files with 29 additions and 0 deletions

View File

@ -410,6 +410,7 @@ ostree_sysroot_upgrader_new_for_os
OstreeSysrootUpgraderFlags
ostree_sysroot_upgrader_new_for_os_with_flags
ostree_sysroot_upgrader_get_origin
ostree_sysroot_upgrader_dup_origin
ostree_sysroot_upgrader_set_origin
ostree_sysroot_upgrader_get_origin_description
ostree_sysroot_upgrader_check_timestamps

View File

@ -341,6 +341,33 @@ ostree_sysroot_upgrader_get_origin (OstreeSysrootUpgrader *self)
return self->origin;
}
/**
* ostree_sysroot_upgrader_dup_origin:
* @self: Sysroot
*
* Returns: (transfer full): A copy of the origin file, or %NULL if unknown
*/
GKeyFile *
ostree_sysroot_upgrader_dup_origin (OstreeSysrootUpgrader *self)
{
GKeyFile *copy = NULL;
g_return_val_if_fail (OSTREE_IS_SYSROOT_UPGRADER (self), NULL);
if (self->origin != NULL)
{
g_autofree char *data = NULL;
gsize length = 0;
copy = g_key_file_new ();
data = g_key_file_to_data (self->origin, &length, NULL);
g_key_file_load_from_data (copy, data, length,
G_KEY_FILE_KEEP_COMMENTS, NULL);
}
return copy;
}
/**
* ostree_sysroot_upgrader_set_origin:
* @self: Sysroot

View File

@ -62,6 +62,7 @@ OstreeSysrootUpgrader *ostree_sysroot_upgrader_new_for_os_with_flags (OstreeSysr
GError **error);
GKeyFile *ostree_sysroot_upgrader_get_origin (OstreeSysrootUpgrader *self);
GKeyFile *ostree_sysroot_upgrader_dup_origin (OstreeSysrootUpgrader *self);
gboolean ostree_sysroot_upgrader_set_origin (OstreeSysrootUpgrader *self, GKeyFile *origin,
GCancellable *cancellable, GError **error);