guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

10/16: home: symlink-manager: Avoid extra 'lstat' call.


From: guix-commits
Subject: 10/16: home: symlink-manager: Avoid extra 'lstat' call.
Date: Thu, 10 Mar 2022 05:43:54 -0500 (EST)

civodul pushed a commit to branch master
in repository guix.

commit a3a76a8384e9f9b6e86b5dbe58ba1421101a87a3
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Fri Feb 18 17:31:10 2022 +0100

    home: symlink-manager: Avoid extra 'lstat' call.
    
    * gnu/home/services/symlink-manager.scm 
(update-symlinks-script)[symlink-to-store?]:
    Avoid extra 'lstat' call.
---
 gnu/home/services/symlink-manager.scm | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/gnu/home/services/symlink-manager.scm 
b/gnu/home/services/symlink-manager.scm
index 6b3a9de3d1..ba42424e8e 100644
--- a/gnu/home/services/symlink-manager.scm
+++ b/gnu/home/services/symlink-manager.scm
@@ -103,8 +103,13 @@ appear only after all nested items already listed."
            (string-append backup-dir "/." path))
 
          (define (symlink-to-store? path)
-           (and (equal? (stat:type (lstat path)) 'symlink)
-                (store-file-name? (readlink path))))
+           (catch 'system-error
+             (lambda ()
+               (store-file-name? (readlink path)))
+             (lambda args
+               (if (= EINVAL (system-error-errno args))
+                   #f
+                   (apply throw args)))))
 
          (define (backup-file path)
            (mkdir-p backup-dir)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]