Subject: [PATCH] system: skeleton-directory: Allow copying into subdirectories.

From: Sughosha <[email-masked]>
Date: Tue, 11 Feb 2025 19:47:30 +0530

This fixes the error while copying the source to the target that is supposed to
go into subdirectories that are not present yet.

* gnu/shadow.scm (skeleton-directory): Create the parent directories of the
target if not present before copying the source.

Change-Id: I91e669968107d3d2b299b61b24ac1cc1895ebf76
---
 gnu/system/shadow.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index 48eca2564f..c68d8306fa 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -320,6 +320,9 @@ (define (skeleton-directory skeletons)
                        ;; would just copy the symlinks as is.
                        (for-each (match-lambda
                                    ((target source)
+                                    (when (not (directory-exists?
+                                                (dirname target)))
+                                      (mkdir-p (dirname target)))
                                     (copy-recursively source target)))
                                  '#$skeletons)
                        ;; Make nanorc respect XDG_CONFIG_HOME.

base-commit: 555937448cc510517011035fbf39c3687336759d
-- 
2.47.1