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>
This commit is contained in:
		
							parent
							
								
									40acbaf078
								
							
						
					
					
						commit
						ea19381bd9
					
				
					 2 changed files with 18 additions and 5 deletions
				
			
		|  | @ -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 a new issue