guix home: import: Call ‘local-file’ with ‘name’
Set the name of the file to just the basename of the file passed to ‘local-file’. * guix/scripts/home/import.scm (basename+remove-dots): New procedure. (generate-bash-configuration+modules): Use it. * tests/home-import.scm (match-home-environment-bash-service): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>master
parent
40acbaf078
commit
ea19381bd9
|
@ -39,7 +39,16 @@
|
||||||
;;;
|
;;;
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
(define (basename+remove-dots file-name)
|
||||||
|
"Remove the dot from the dotfile FILE-NAME; replace the other dots in
|
||||||
|
FILE-NAME with \"-\", and return the basename of it."
|
||||||
|
(string-map (match-lambda
|
||||||
|
(#\. #\-)
|
||||||
|
(c c))
|
||||||
|
(let ((base (basename file-name)))
|
||||||
|
(if (string-prefix? "." base)
|
||||||
|
(string-drop base 1)
|
||||||
|
base))))
|
||||||
|
|
||||||
(define (generate-bash-configuration+modules destination-directory)
|
(define (generate-bash-configuration+modules destination-directory)
|
||||||
(define (destination-append path)
|
(define (destination-append path)
|
||||||
|
@ -52,15 +61,18 @@
|
||||||
(home-bash-configuration
|
(home-bash-configuration
|
||||||
,@(if (file-exists? rc)
|
,@(if (file-exists? rc)
|
||||||
`((bashrc
|
`((bashrc
|
||||||
(list (local-file ,rc))))
|
(list (local-file ,rc
|
||||||
|
,(basename+remove-dots rc)))))
|
||||||
'())
|
'())
|
||||||
,@(if (file-exists? profile)
|
,@(if (file-exists? profile)
|
||||||
`((bash-profile
|
`((bash-profile
|
||||||
(list (local-file ,profile))))
|
(list (local-file ,profile
|
||||||
|
,(basename+remove-dots profile)))))
|
||||||
'())
|
'())
|
||||||
,@(if (file-exists? logout)
|
,@(if (file-exists? logout)
|
||||||
`((bash-logout
|
`((bash-logout
|
||||||
(list (local-file ,logout))))
|
(list (local-file ,logout
|
||||||
|
,(basename+remove-dots logout)))))
|
||||||
'())))
|
'())))
|
||||||
(guix gexp)
|
(guix gexp)
|
||||||
(gnu home services shells))))
|
(gnu home services shells))))
|
||||||
|
|
|
@ -156,7 +156,8 @@ corresponding file."
|
||||||
'home-bash-service-type
|
'home-bash-service-type
|
||||||
('home-bash-configuration
|
('home-bash-configuration
|
||||||
('bashrc
|
('bashrc
|
||||||
('list ('local-file "/tmp/guix-config/.bashrc"))))))))))
|
('list ('local-file "/tmp/guix-config/.bashrc"
|
||||||
|
"bashrc"))))))))))
|
||||||
|
|
||||||
(test-assert "manifest->code: No services"
|
(test-assert "manifest->code: No services"
|
||||||
(eval-test-with-home-environment
|
(eval-test-with-home-environment
|
||||||
|
|
Reference in New Issue