GNU bug report logs - #54180
[PATCH 00/12] Home: Clarify and better test symlink-manager.scm

Previous Next

Package: guix-patches;

Reported by: Ludovic Courtès <ludo <at> gnu.org>

Date: Sun, 27 Feb 2022 13:41: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


Message #14 received at 54180 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 54180 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: [PATCH 06/12] home: symlink-manager: Avoid extra 'lstat' call.
Date: Sun, 27 Feb 2022 14:53:36 +0100
* 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 @@ (define (get-backup-path path)
            (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)
-- 
2.34.0





This bug report was last modified 3 years and 156 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.