Commit 91a3cc1
Eric Bower
·
2025-12-15 23:47:45 -0500 EST
parent ee7df39
chore(pgs): hide dot files from dir listing pages
2 files changed,
+25,
-0
+4,
-0
| ... | ... | @@ -7,6 +7,7 @@ import ( | |
| 7 | 7 | "html/template" | |
| 8 | 8 | "os" | |
| 9 | 9 | "sort" | |
| 10 | + | "strings" | |
| 10 | 11 | ||
| 11 | 12 | sst "github.com/picosh/pico/pkg/pobj/storage" | |
| 12 | 13 | ) |
| ... | ... | @@ -69,6 +70,9 @@ func toDisplayEntries(entries []os.FileInfo) []dirEntryDisplay { | |
| 69 | 70 | displayEntries := make([]dirEntryDisplay, 0, len(entries)) | |
| 70 | 71 | ||
| 71 | 72 | for _, entry := range entries { | |
| 73 | + | if strings.HasPrefix(entry.Name(), ".") { | |
| 74 | + | continue | |
| 75 | + | } | |
| 72 | 76 | display := dirEntryDisplay{ | |
| 73 | 77 | Href: entry.Name(), | |
| 74 | 78 | Display: entry.Name(), |
+21,
-0
| ... | ... | @@ -94,6 +94,27 @@ func TestGenerateDirectoryHTML(t *testing.T) { | |
| 94 | 94 | } | |
| 95 | 95 | } | |
| 96 | 96 | ||
| 97 | + | func TestHideDotFiles(t *testing.T) { | |
| 98 | + | entries := []os.FileInfo{ | |
| 99 | + | &utils.VirtualFile{FName: ".hidden", FIsDir: false, FModTime: time.Date(2025, 1, 15, 10, 30, 0, 0, time.UTC)}, | |
| 100 | + | &utils.VirtualFile{FName: ".git", FIsDir: true, FModTime: time.Date(2025, 1, 15, 10, 30, 0, 0, time.UTC)}, | |
| 101 | + | &utils.VirtualFile{FName: "visible.txt", FIsDir: false, FModTime: time.Date(2025, 1, 15, 10, 30, 0, 0, time.UTC)}, | |
| 102 | + | &utils.VirtualFile{FName: "docs", FIsDir: true, FModTime: time.Date(2025, 1, 15, 10, 30, 0, 0, time.UTC)}, | |
| 103 | + | } | |
| 104 | + | ||
| 105 | + | displayEntries := toDisplayEntries(entries) | |
| 106 | + | ||
| 107 | + | if len(displayEntries) != 2 { | |
| 108 | + | t.Errorf("expected 2 entries, got %d", len(displayEntries)) | |
| 109 | + | } | |
| 110 | + | ||
| 111 | + | for _, entry := range displayEntries { | |
| 112 | + | if strings.HasPrefix(entry.Display, ".") { | |
| 113 | + | t.Errorf("dot file should be hidden: %s", entry.Display) | |
| 114 | + | } | |
| 115 | + | } | |
| 116 | + | } | |
| 117 | + | ||
| 97 | 118 | func TestSortEntries(t *testing.T) { | |
| 98 | 119 | entries := []os.FileInfo{ | |
| 99 | 120 | &utils.VirtualFile{FName: "zebra.txt", FIsDir: false}, |