summary: write the contents to a temporary file
do not write directly to the summary file but use a temporary file first. It avoids to create an empty file if "ot_util_variant_save" fails. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
parent
69184e70e9
commit
362771aa98
|
|
@ -1,6 +1,7 @@
|
||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011 Colin Walters <walters@verbum.org>
|
* Copyright (C) 2011 Colin Walters <walters@verbum.org>
|
||||||
|
* Copyright (C) 2015 Red Hat, Inc.
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
|
@ -3461,10 +3462,8 @@ out:
|
||||||
* An OSTree repository can contain a high level "summary" file that
|
* An OSTree repository can contain a high level "summary" file that
|
||||||
* describes the available branches and other metadata.
|
* describes the available branches and other metadata.
|
||||||
*
|
*
|
||||||
* It is not regenerated automatically when commits are created; this
|
* It is regenerated automatically after a commit if
|
||||||
* API is available to atomically regenerate the summary after
|
* `core/commit-update-summary` is set.
|
||||||
* multiple commits. It should only be invoked by one process at a
|
|
||||||
* time.
|
|
||||||
*/
|
*/
|
||||||
gboolean
|
gboolean
|
||||||
ostree_repo_regenerate_summary (OstreeRepo *self,
|
ostree_repo_regenerate_summary (OstreeRepo *self,
|
||||||
|
|
@ -3473,7 +3472,6 @@ ostree_repo_regenerate_summary (OstreeRepo *self,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
gboolean ret = FALSE;
|
gboolean ret = FALSE;
|
||||||
gs_unref_object GFile *summary_path = NULL;
|
|
||||||
gs_unref_hashtable GHashTable *refs = NULL;
|
gs_unref_hashtable GHashTable *refs = NULL;
|
||||||
gs_unref_variant_builder GVariantBuilder *refs_builder = NULL;
|
gs_unref_variant_builder GVariantBuilder *refs_builder = NULL;
|
||||||
gs_unref_variant GVariant *summary = NULL;
|
gs_unref_variant GVariant *summary = NULL;
|
||||||
|
|
@ -3516,9 +3514,13 @@ ostree_repo_regenerate_summary (OstreeRepo *self,
|
||||||
g_variant_ref_sink (summary);
|
g_variant_ref_sink (summary);
|
||||||
}
|
}
|
||||||
|
|
||||||
summary_path = g_file_get_child (self->repodir, "summary");
|
if (!_ostree_repo_file_replace_contents (self,
|
||||||
|
self->repo_dir_fd,
|
||||||
if (!ot_util_variant_save (summary_path, summary, cancellable, error))
|
"summary",
|
||||||
|
g_variant_get_data (summary),
|
||||||
|
g_variant_get_size (summary),
|
||||||
|
cancellable,
|
||||||
|
error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
ret = TRUE;
|
ret = TRUE;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue