@@ -40,15 +40,14 @@ (define-module (guix scripts home import)
(define %destination-directory
(make-parameter (string-append (getenv "HOME") "/src/guix-config")))
-(define (generate-bash-module+configuration)
+(define (generate-bash-configuration+modules)
(define (destination-append path)
(string-append (%destination-directory) "/" path))
(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
@@ -64,14 +63,16 @@ (define (destination-append path)
`((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 (modules+configurations)
+(define %files+configurations-alist
+ `((".bashrc" . ,generate-bash-configuration+modules)
+ (".bash_profile" . ,generate-bash-configuration+modules)
+ (".bash_logout" . ,generate-bash-configuration+modules)))
+
+(define (configurations+modules)
(define configurations
(delete-duplicates
(filter-map (match-lambda
@@ -85,11 +86,11 @@ (define configurations
(%destination-directory) "/" file))
proc)
#f))))
- %files-configurations-alist)
+ %files+configurations-alist)
(lambda (x y)
(equal? (procedure-name x) (procedure-name y)))))
- (map (lambda (proc) (proc)) configurations))
+ (map (lambda (proc) (proc)) configurations))
;; Based on `manifest->code' from (guix profiles)
;; MAYBE: Upstream it?
@@ -144,14 +145,14 @@ (define (qualified-name entry)
":" output))))
(manifest-entries manifest))))
(if home-environment?
- (let ((modules+configurations (modules+configurations)))
+ (let ((configurations+modules (configurations+modules)))
`(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)
+ ,@(concatenate (map cdr configurations+modules)))
+ ,(home-environment-template
+ #:specs specs
+ #:services (map first configurations+modules))))
`(begin
(use-modules (gnu packages))
@@ -186,18 +187,18 @@ (define name
(options->transformation ',options))))
transformation-procedures)))
(if home-environment?
- (let ((modules+configurations (modules+configurations)))
+ (let ((configurations+modules (configurations+modules)))
`(begin
(use-modules (guix transformations)
(gnu home)
(gnu packages)
- ,@(map first modules+configurations))
+ ,@(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))