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
;;; 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>
;;;
;;; This file is part of GNU Guix.
@ -91,7 +91,8 @@ (define* (copy-account-skeletons home
(mkdir-p home)
(for-each (lambda (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)))
files)))

View file

@ -1,5 +1,5 @@
;;; 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.
;;;
@ -188,7 +188,8 @@ (define (skeleton-directory skeletons)
"Return a directory containing SKELETONS, a list of name/derivation tuples."
(computed-file "skel"
#~(begin
(use-modules (ice-9 match))
(use-modules (ice-9 match)
(guix build utils))
(mkdir #$output)
(chdir #$output)
@ -198,9 +199,10 @@ (define (skeleton-directory skeletons)
;; would just copy the symlinks as is.
(for-each (match-lambda
((target source)
(copy-file source target)))
(copy-recursively source target)))
'#$skeletons)
#t)))
#t)
#:modules '((guix build utils))))
(define (assert-valid-users/groups users groups)
"Raise an error if USERS refer to groups not listed in GROUPS."