guix home: import: Allow multiple modules to be imported for each service.
Previously, only one module could be imported for each service, e.g., only (gnu home-services shell) could be imported when generating the Bash service declaration. However, for some services, multiple modules might need to be imported in order for it to work. * guix/scripts/home/import.scm (generate-bash-module+configuration): Rename to ... (generate-bash-configuration+modules): ... this. (%files-configurations-alist): Rename to ... (%files+configurations-alist): ... this. (modules+configurations): Rename to ... (configurations+modules): ... this. (manifest->code): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>master
parent
d5eb05f01e
commit
e4d09d25ae
|
@ -43,8 +43,7 @@
|
|||
(let ((rc (destination-append ".bashrc"))
|
||||
(profile (destination-append ".bash_profile"))
|
||||
(logout (destination-append ".bash_logout")))
|
||||
`((gnu home-services bash)
|
||||
(service home-bash-service-type
|
||||
`((service home-bash-service-type
|
||||
(home-bash-configuration
|
||||
,@(if (file-exists? rc)
|
||||
`((bashrc
|
||||
|
@ -60,12 +59,15 @@
|
|||
`((bash-logout
|
||||
(list (slurp-file-gexp
|
||||
(local-file ,logout)))))
|
||||
'()))))))
|
||||
'())))
|
||||
(gnu home-services bash))))
|
||||
|
||||
(define %files-configurations-alist
|
||||
`((".bashrc" . ,generate-bash-module+configuration)
|
||||
(".bash_profile" . ,generate-bash-module+configuration)
|
||||
(".bash_logout" . ,generate-bash-module+configuration)))
|
||||
|
||||
|
||||
(define %files+configurations-alist
|
||||
`((".bashrc" . ,generate-bash-configuration+modules)
|
||||
(".bash_profile" . ,generate-bash-configuration+modules)
|
||||
(".bash_logout" . ,generate-bash-configuration+modules)))
|
||||
|
||||
(define (configurations+modules destination-directory)
|
||||
"Return a list of procedures which when called, generate code for a home
|
||||
|
@ -144,12 +146,13 @@ available."
|
|||
(let ((configurations+modules
|
||||
(configurations+modules destination-directory)))
|
||||
`(begin
|
||||
(use-modules (gnu home)
|
||||
(gnu packages)
|
||||
,@(map first modules+configurations))
|
||||
,(home-environment-template
|
||||
#:specs specs
|
||||
#:services (map second modules+configurations))))
|
||||
(use-modules (gnu home)
|
||||
(gnu packages)
|
||||
(gnu services)
|
||||
,@(concatenate (map cdr configurations+modules)))
|
||||
,(home-environment-template
|
||||
#:specs specs
|
||||
#:services (map first configurations+modules))))
|
||||
`(begin
|
||||
(use-modules (gnu packages))
|
||||
|
||||
|
@ -190,13 +193,14 @@ available."
|
|||
(use-modules (guix transformations)
|
||||
(gnu home)
|
||||
(gnu packages)
|
||||
,@(map first modules+configurations))
|
||||
(gnu services)
|
||||
,@(concatenate (map cdr configurations+modules)))
|
||||
|
||||
,@transformations
|
||||
|
||||
,(home-environment-template
|
||||
#:packages packages
|
||||
#:services (map second modules+configurations))))
|
||||
#:services (map first configurations+modules))))
|
||||
`(begin
|
||||
(use-modules (guix transformations)
|
||||
(gnu packages))
|
||||
|
|
Reference in New Issue