repos / pico

pico services mono repo
git clone https://github.com/picosh/pico.git

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
M pkg/apps/pgs/gen_dir_listing.go
+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(),
M pkg/apps/pgs/gen_dir_listing_test.go
+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},