1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-05-28 03:51:53 +02:00

home: import: Avoid duplication of 'manifest->code'.

* guix/scripts/home/import.scm (manifest->code): Remove.
(manifest+configuration-files->code): New procedure.
(import-manifest): Use 'manifest+configuration-files->code' instead of
'manifest->code'.
* tests/home-import.scm (eval-test-with-home-environment): Likewise.
(match-home-environment-transformations): New procedure.
("manifest->code: No services, package transformations"): New test.
This commit is contained in:
Ludovic Courtès
2021-10-31 00:02:27 +02:00
parent 96728c54df
commit 6f4ca78761
2 changed files with 66 additions and 137 deletions
+29 -4
View File
@@ -87,10 +87,8 @@ corresponding file."
(create-temporary-home files-alist)
(setenv "HOME" %temporary-home-directory)
(mkdir-p %temporary-home-directory)
(let* ((home-environment (manifest->code manifest %destination-directory
#:entry-package-version
manifest-entry-version-prefix
#:home-environment? #t))
(let* ((home-environment (manifest+configuration-files->code
manifest %destination-directory))
(result (matcher home-environment)))
(delete-file-recursively %temporary-home-directory)
result))
@@ -108,6 +106,22 @@ corresponding file."
('services
('list)))))
(define-home-environment-matcher match-home-environment-transformations
('begin
('use-modules
('gnu 'home)
('gnu 'packages)
('gnu 'services)
('guix 'transformations))
('define transform ('options->transformation _))
('home-environment
('packages
('list (transform ('specification->package "guile@2.0.9"))
('specification->package "gcc")
('specification->package "glibc@2.19")))
('services ('list)))))
(define-home-environment-matcher match-home-environment-no-services-nor-packages
('begin
('use-modules
@@ -141,12 +155,23 @@ corresponding file."
('list ('local-file "/tmp/guix-config/.bashrc"
"bashrc"))))))))))
(test-assert "manifest->code: No services"
(eval-test-with-home-environment
'()
(make-manifest (list guile-2.0.9 gcc glibc))
match-home-environment-no-services))
(test-assert "manifest->code: No services, package transformations"
(eval-test-with-home-environment
'()
(make-manifest (list (manifest-entry
(inherit guile-2.0.9)
(properties `((transformations
. ((foo . "bar"))))))
gcc glibc))
match-home-environment-transformations))
(test-assert "manifest->code: No packages nor services"
(eval-test-with-home-environment
'()