system: Allow account skeletons to be directories.

* gnu/system/shadow.scm (skeleton-directory): Use 'copy-recursively'
instead of 'copy-file'.
* gnu/build/activation.scm (copy-account-skeletons): Likewise.
This commit is contained in:
Ludovic Courtès 2016-03-20 15:02:38 +01:00
parent 71be99b8b6
commit 4e8b7502e3
2 changed files with 9 additions and 6 deletions

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -91,7 +91,8 @@
(mkdir-p home) (mkdir-p home)
(for-each (lambda (file) (for-each (lambda (file)
(let ((target (string-append home "/" file))) (let ((target (string-append home "/" file)))
(copy-file (string-append directory "/" file) target) (copy-recursively (string-append directory "/" file)
target)
(make-file-writable target))) (make-file-writable target)))
files))) files)))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -188,7 +188,8 @@ set debug-file-directory ~/.guix-profile/lib/debug\n")))
"Return a directory containing SKELETONS, a list of name/derivation tuples." "Return a directory containing SKELETONS, a list of name/derivation tuples."
(computed-file "skel" (computed-file "skel"
#~(begin #~(begin
(use-modules (ice-9 match)) (use-modules (ice-9 match)
(guix build utils))
(mkdir #$output) (mkdir #$output)
(chdir #$output) (chdir #$output)
@ -198,9 +199,10 @@ set debug-file-directory ~/.guix-profile/lib/debug\n")))
;; would just copy the symlinks as is. ;; would just copy the symlinks as is.
(for-each (match-lambda (for-each (match-lambda
((target source) ((target source)
(copy-file source target))) (copy-recursively source target)))
'#$skeletons) '#$skeletons)
#t))) #t)
#:modules '((guix build utils))))
(define (assert-valid-users/groups users groups) (define (assert-valid-users/groups users groups)
"Raise an error if USERS refer to groups not listed in GROUPS." "Raise an error if USERS refer to groups not listed in GROUPS."