flatpak_cp_a: Add support for skipping some source files

Closes: #136
Approved by: alexlarsson
auto
Alexander Larsson 2018-04-25 17:28:06 +02:00 committed by Atomic Bot
parent 4510aa2359
commit aa2601dbb3
3 changed files with 20 additions and 3 deletions

View File

@ -693,6 +693,7 @@ gboolean
flatpak_cp_a (GFile *src,
GFile *dest,
FlatpakCpFlags flags,
GPtrArray *skip_files,
GCancellable *cancellable,
GError **error)
{
@ -763,14 +764,29 @@ flatpak_cp_a (GFile *src,
{
const char *name = g_file_info_get_name (child_info);
g_autoptr(GFile) src_child = g_file_get_child (src, name);
gboolean skip = FALSE;
int i;
for (i = 0; skip_files != NULL && i < skip_files->len; i++)
{
if (g_file_equal (src_child, g_ptr_array_index (skip_files, i)))
{
skip = TRUE;
break;
}
}
if (dest_child)
g_object_unref (dest_child);
dest_child = g_file_get_child (dest, name);
if (g_file_info_get_file_type (child_info) == G_FILE_TYPE_DIRECTORY)
if (skip)
{
if (!flatpak_cp_a (src_child, dest_child, flags,
/* skip src */
}
else if (g_file_info_get_file_type (child_info) == G_FILE_TYPE_DIRECTORY)
{
if (!flatpak_cp_a (src_child, dest_child, flags, skip_files,
cancellable, error))
goto out;
}

View File

@ -245,6 +245,7 @@ typedef enum {
gboolean flatpak_cp_a (GFile *src,
GFile *dest,
FlatpakCpFlags flags,
GPtrArray *skip_files,
GCancellable *cancellable,
GError **error);

View File

@ -334,7 +334,7 @@ migrate_locale_dir (GFile *source_dir,
if (!flatpak_cp_a (child, locale_subdir,
FLATPAK_CP_FLAGS_MERGE | FLATPAK_CP_FLAGS_MOVE,
NULL, error))
NULL, NULL, error))
return FALSE;
target = g_build_filename ("../../share/runtime/locale", relative, NULL);