diff --git a/bin/analyze-go b/bin/analyze-go index 58f70af..8b21688 100755 Binary files a/bin/analyze-go and b/bin/analyze-go differ diff --git a/cmd/analyze/main.go b/cmd/analyze/main.go index a448390..2d207c5 100644 --- a/cmd/analyze/main.go +++ b/cmd/analyze/main.go @@ -445,13 +445,34 @@ func createOverviewEntries() []dirEntry { ) // Add Volumes if exists - if _, err := os.Stat("/Volumes"); err == nil { + if hasUsefulVolumeMounts("/Volumes") { entries = append(entries, dirEntry{name: "Volumes", path: "/Volumes", isDir: true, size: -1}) } return entries } +func hasUsefulVolumeMounts(path string) bool { + entries, err := os.ReadDir(path) + if err != nil { + return false + } + + for _, entry := range entries { + if entry.Type()&fs.ModeSymlink != 0 { + continue // Skip synthetic system links like "Macintosh HD" + } + info, err := entry.Info() + if err != nil { + continue + } + if info.IsDir() { + return true + } + } + return false +} + func (m *model) hydrateOverviewEntries() { m.entries = createOverviewEntries() if m.overviewSizeCache == nil {