GNU bug report logs -
#50873
[PATCH 0/5] Fixes to ‘guix home import’
Previous Next
Reported by: Xinglu Chen <public <at> yoctocell.xyz>
Date: Tue, 28 Sep 2021 17:34:02 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
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.
---
guix/scripts/home/import.scm | 20 ++++++++++++++++----
tests/home-import.scm | 3 ++-
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm
index 6e3ed065d5..a0022458f6 100644
--- a/guix/scripts/home/import.scm
+++ b/guix/scripts/home/import.scm
@@ -39,7 +39,16 @@ (define-module (guix scripts home import)
;;;
;;; 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 (destination-append path)
@@ -52,15 +61,18 @@ (define (destination-append path)
(home-bash-configuration
,@(if (file-exists? rc)
`((bashrc
- (list (local-file ,rc))))
+ (list (local-file ,rc
+ ,(basename+remove-dots rc)))))
'())
,@(if (file-exists? profile)
`((bash-profile
- (list (local-file ,profile))))
+ (list (local-file ,profile
+ ,(basename+remove-dots profile)))))
'())
,@(if (file-exists? logout)
`((bash-logout
- (list (local-file ,logout))))
+ (list (local-file ,logout
+ ,(basename+remove-dots logout)))))
'())))
(guix gexp)
(gnu home services shells))))
diff --git a/tests/home-import.scm b/tests/home-import.scm
index a4e71fa698..d2f5728e3c 100644
--- a/tests/home-import.scm
+++ b/tests/home-import.scm
@@ -156,7 +156,8 @@ (define-home-environment-matcher match-home-environment-bash-service
'home-bash-service-type
('home-bash-configuration
('bashrc
- ('list ('local-file "/tmp/guix-config/.bashrc"))))))))))
+ ('list ('local-file "/tmp/guix-config/.bashrc"
+ "bashrc"))))))))))
(test-assert "manifest->code: No services"
(eval-test-with-home-environment
--
2.33.0
This bug report was last modified 3 years and 193 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.