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 (
77 "html/template"
88 "os"
99 "sort"
10+ "strings"
1011
1112 sst "github.com/picosh/pico/pkg/pobj/storage"
1213 )
......@@ -69,6 +70,9 @@ func toDisplayEntries(entries []os.FileInfo) []dirEntryDisplay {
6970 displayEntries := make([]dirEntryDisplay, 0, len(entries))
7071
7172 for _, entry := range entries {
73+ if strings.HasPrefix(entry.Name(), ".") {
74+ continue
75+ }
7276 display := dirEntryDisplay{
7377 Href: entry.Name(),
7478 Display: entry.Name(),
+21, -0
......@@ -94,6 +94,27 @@ func TestGenerateDirectoryHTML(t *testing.T) {
9494 }
9595 }
9696
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+
97118 func TestSortEntries(t *testing.T) {
98119 entries := []os.FileInfo{
99120 &utils.VirtualFile{FName: "zebra.txt", FIsDir: false},