From 511b65df225a962c8735b22d84f57187f1857233 Mon Sep 17 00:00:00 2001 From: luxick Date: Wed, 29 Apr 2026 14:17:52 +0200 Subject: [PATCH] Resolve symlink root in search --- search.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/search.go b/search.go index 7db253a..0360e92 100644 --- a/search.go +++ b/search.go @@ -57,8 +57,15 @@ func searchFolders(root, query string) []searchResult { maxDist = 3 } + // Resolve symlinks so WalkDir descends into the real tree even when the + // configured wiki root is itself a symlink (as on the deployed NAS). + walkRoot, err := filepath.EvalSymlinks(root) + if err != nil { + walkRoot = root + } + var results []searchResult - _ = filepath.WalkDir(root, func(fsPath string, d fs.DirEntry, err error) error { + _ = filepath.WalkDir(walkRoot, func(fsPath string, d fs.DirEntry, err error) error { if err != nil { return nil } @@ -69,14 +76,14 @@ func searchFolders(root, query string) []searchResult { } return nil } - if !d.IsDir() || fsPath == root { + if !d.IsDir() || fsPath == walkRoot { return nil } rank, ok := matchRank(strings.ToLower(name), q, maxDist) if !ok { return nil } - rel, relErr := filepath.Rel(root, fsPath) + rel, relErr := filepath.Rel(walkRoot, fsPath) if relErr != nil { return nil }