Support pathnames for --subpath=...

This allows you to pull a single file, rather than just a directory.

Closes: #244
Approved by: cgwalters
This commit is contained in:
Alexander Larsson authored and Colin Walters (automation) committed 2016-04-07 15:15:39 +00:00
1 parent 984bf91826
commit 91734a8a18
2 files changed
+13 -6

No files matched your search

+9 -6
View File
@@ -448,12 +448,7 @@ scan_dirtree_object (OtPullData *pull_data,
files_variant = g_variant_get_child_value (tree, 0);
dirs_variant = g_variant_get_child_value (tree, 1);
/* Skip files if we're traversing a request only directory */
if (pull_data->dir)
n = 0;
else
n = g_variant_n_children (files_variant);
n = g_variant_n_children (files_variant);
for (i = 0; i < n; i++)
{
const char *filename;
@@ -466,6 +461,14 @@ scan_dirtree_object (OtPullData *pull_data,
if (!ot_util_filename_validate (filename, error))
goto out;
/* Skip files if we're traversing a request only directory, unless it exactly
* matches the path */
if (pull_data->dir &&
/* Should always an initial slash, we assert it in scan_dirtree_object */
pull_data->dir[0] == '/' &&
strcmp (pull_data->dir+1, filename) != 0)
continue;
file_checksum = ostree_checksum_from_bytes_v (csum);
if (!ostree_repo_has_object (pull_data->repo, OSTREE_OBJECT_TYPE_FILE, file_checksum,