From 3748c32b13e5f05211477dd4bb8572e2856558ab Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 20 Mar 2022 18:59:47 +0100 Subject: home: import: Clarify alias parsing code. * guix/scripts/home/import.scm (generate-bash-configuration+modules) [bash-alias->pair]: Return #f on match failure. [parse-aliases]: Adjust accordingly and use 'match'. Remove 'filter' call. --- guix/scripts/home/import.scm | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/guix/scripts/home/import.scm b/guix/scripts/home/import.scm index f01a98bc55..575fe8f688 100644 --- a/guix/scripts/home/import.scm +++ b/guix/scripts/home/import.scm @@ -65,17 +65,19 @@ FILE-NAME with \"-\", and return the basename of it." (define (bash-alias->pair line) (match (regexp-exec alias-rx line) - (#f '()) + (#f #f) (matched `(,(match:substring matched 1) . ,(match:substring matched 2))))) (define (parse-aliases input) - (let loop ((line (read-line input)) - (result '())) - (if (eof-object? line) - (reverse result) - (loop (read-line input) - (cons (bash-alias->pair line) result))))) + (let loop ((result '())) + (match (read-line input) + ((? eof-object?) + (reverse result)) + (line + (match (bash-alias->pair line) + (#f (loop result)) + (alias (loop (cons alias result)))))))) (let ((rc (destination-append ".bashrc")) (profile (destination-append ".bash_profile")) @@ -85,9 +87,9 @@ FILE-NAME with \"-\", and return the basename of it." ,@(if (file-exists? rc) `((aliases ',(let* ((port (open-pipe* OPEN_READ "bash" "-i" "-c" "alias")) - (alist (parse-aliases port))) + (alist (parse-aliases port))) (close-port port) - (filter (negate null?) alist)))) + alist))) '()) ,@(if (file-exists? rc) `((bashrc -- cgit v1.2.3