- commit
- 91a3cc1
- parent
- ee7df39
- author
- Eric Bower
- date
- 2025-12-15 23:47:45 -0500 EST
chore(pgs): hide dot files from dir listing pages
2 files changed,
+25,
-0
+4,
-0
1@@ -7,6 +7,7 @@ import (
2 "html/template"
3 "os"
4 "sort"
5+ "strings"
6
7 sst "github.com/picosh/pico/pkg/pobj/storage"
8 )
9@@ -69,6 +70,9 @@ func toDisplayEntries(entries []os.FileInfo) []dirEntryDisplay {
10 displayEntries := make([]dirEntryDisplay, 0, len(entries))
11
12 for _, entry := range entries {
13+ if strings.HasPrefix(entry.Name(), ".") {
14+ continue
15+ }
16 display := dirEntryDisplay{
17 Href: entry.Name(),
18 Display: entry.Name(),
+21,
-0
1@@ -94,6 +94,27 @@ func TestGenerateDirectoryHTML(t *testing.T) {
2 }
3 }
4
5+func TestHideDotFiles(t *testing.T) {
6+ entries := []os.FileInfo{
7+ &utils.VirtualFile{FName: ".hidden", FIsDir: false, FModTime: time.Date(2025, 1, 15, 10, 30, 0, 0, time.UTC)},
8+ &utils.VirtualFile{FName: ".git", FIsDir: true, FModTime: time.Date(2025, 1, 15, 10, 30, 0, 0, time.UTC)},
9+ &utils.VirtualFile{FName: "visible.txt", FIsDir: false, FModTime: time.Date(2025, 1, 15, 10, 30, 0, 0, time.UTC)},
10+ &utils.VirtualFile{FName: "docs", FIsDir: true, FModTime: time.Date(2025, 1, 15, 10, 30, 0, 0, time.UTC)},
11+ }
12+
13+ displayEntries := toDisplayEntries(entries)
14+
15+ if len(displayEntries) != 2 {
16+ t.Errorf("expected 2 entries, got %d", len(displayEntries))
17+ }
18+
19+ for _, entry := range displayEntries {
20+ if strings.HasPrefix(entry.Display, ".") {
21+ t.Errorf("dot file should be hidden: %s", entry.Display)
22+ }
23+ }
24+}
25+
26 func TestSortEntries(t *testing.T) {
27 entries := []os.FileInfo{
28 &utils.VirtualFile{FName: "zebra.txt", FIsDir: false},