aboutsummaryrefslogtreecommitdiff
path: root/gnu/home/services/symlink-manager.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/home/services/symlink-manager.scm')
-rw-r--r--gnu/home/services/symlink-manager.scm9
1 files 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)