core: Ensure we chown created directories too
This commit is contained in:
parent
c32141c2bf
commit
a94e0b8bf8
|
|
@ -884,7 +884,16 @@ ostree_create_file_from_input (GFile *dest_file,
|
||||||
}
|
}
|
||||||
dest_path = ot_gfile_get_path_cached (dest_file);
|
dest_path = ot_gfile_get_path_cached (dest_file);
|
||||||
|
|
||||||
if (S_ISREG (mode))
|
if (S_ISDIR (mode))
|
||||||
|
{
|
||||||
|
if (mkdir (ot_gfile_get_path_cached (dest_file),
|
||||||
|
g_file_info_get_attribute_uint32 (finfo, "unix::mode")) < 0)
|
||||||
|
{
|
||||||
|
ot_util_set_error_from_errno (error, errno);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (S_ISREG (mode))
|
||||||
{
|
{
|
||||||
out = g_file_create (dest_file, 0, cancellable, error);
|
out = g_file_create (dest_file, 0, cancellable, error);
|
||||||
if (!out)
|
if (!out)
|
||||||
|
|
|
||||||
|
|
@ -1995,16 +1995,14 @@ checkout_one_directory (OstreeRepo *self,
|
||||||
if (!_ostree_repo_file_get_xattrs (dir, &xattr_variant, NULL, error))
|
if (!_ostree_repo_file_get_xattrs (dir, &xattr_variant, NULL, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (mkdir (dest_path, (mode_t)g_file_info_get_attribute_uint32 (dir_info, "unix::mode")) < 0)
|
if (!ostree_create_file_from_input (dest_file, dir_info,
|
||||||
{
|
xattr_variant,
|
||||||
ot_util_set_error_from_errno (error, errno);
|
NULL,
|
||||||
g_prefix_error (error, "Failed to create directory '%s': ", dest_path);
|
OSTREE_OBJECT_TYPE_FILE,
|
||||||
goto out;
|
NULL,
|
||||||
}
|
cancellable, error))
|
||||||
|
|
||||||
if (!ostree_set_xattrs (dest_file, xattr_variant, cancellable, error))
|
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (!checkout_tree (self, dir, dest_path, cancellable, error))
|
if (!checkout_tree (self, dir, dest_path, cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue