summaryrefslogtreecommitdiff
path: root/guix/serialization.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-12-09 21:50:21 +0100
committerLudovic Courtès <ludo@gnu.org>2020-12-15 17:32:09 +0100
commit465d2cb286170933577de045e6e6dad7205bfe10 (patch)
tree7dba0ec00536a6fa8483f88e11e3adbe682ccbf4 /guix/serialization.scm
parent7a2897149d60816c33c63b7b7254ad283f8c3602 (diff)
downloadguix-465d2cb286170933577de045e6e6dad7205bfe10.tar.gz
guix-465d2cb286170933577de045e6e6dad7205bfe10.tar.xz
serialization: 'fold-archive' notifies about directory processing completion.
* guix/serialization.scm (fold-archive): Call PROC with a 'directory-complete tag when done with a directory. (restore-file): Handle it. * guix/scripts/archive.scm (list-contents): Likewise. * guix/scripts/challenge.scm (archive-contents): Likewise. * tests/nar.scm ("write-file-tree + fold-archive"): Adjust accordingly.
Diffstat (limited to 'guix/serialization.scm')
-rw-r--r--guix/serialization.scm5
1 files changed, 4 insertions, 1 deletions
diff --git a/guix/serialization.scm b/guix/serialization.scm
index 836ad06caf..cc56134ef4 100644
--- a/guix/serialization.scm
+++ b/guix/serialization.scm
@@ -444,7 +444,8 @@ depends on TYPE."
(file file)
(token x))))))
(loop (read-string port) result)))))
- (")" result) ;done with DIR
+ (")" ;done with DIR
+ (proc file 'directory-complete #f result))
(x
(raise
(condition
@@ -463,6 +464,8 @@ Restore it as FILE."
(match type
('directory
(mkdir file))
+ ('directory-complete
+ #t)
('symlink
(symlink content file))
((or 'regular 'executable)