@@ -8,10 +8,11 @@ import (
8
8
"github.com/go-chi/chi/v5"
9
9
)
10
10
11
- func serve (fileSystem fs.FS , filePath string ) http.HandlerFunc {
12
- return func (w http.ResponseWriter , r * http.Request ) {
13
- fmt .Println ("Requesting file: " + filePath )
14
- bytes , err := fs .ReadFile (fileSystem , filePath )
11
+ func serveFile (router chi.Router , fileSystem fs.FS , fileName string ) {
12
+
13
+ handler := func (w http.ResponseWriter , r * http.Request ) {
14
+ fmt .Println ("Requesting file: " + fileName )
15
+ bytes , err := fs .ReadFile (fileSystem , fileName )
15
16
16
17
if err != nil {
17
18
http .Error (w , http .StatusText (404 ), 404 )
@@ -22,6 +23,8 @@ func serve(fileSystem fs.FS, filePath string) http.HandlerFunc {
22
23
http .Error (w , http .StatusText (404 ), 404 )
23
24
}
24
25
}
26
+
27
+ router .Get ("/" + fileName , handler )
25
28
}
26
29
27
30
func buildRouter (rtr chi.Router , fileSystem fs.FS , name string ) {
@@ -31,6 +34,7 @@ func buildRouter(rtr chi.Router, fileSystem fs.FS, name string) {
31
34
return
32
35
}
33
36
37
+ fmt .Println ("Recursing: " + name )
34
38
for _ , file := range files {
35
39
name := file .Name ()
36
40
@@ -44,7 +48,8 @@ func buildRouter(rtr chi.Router, fileSystem fs.FS, name string) {
44
48
buildRouter (r , sub , name )
45
49
})
46
50
} else {
47
- rtr .Get ("/" + name , serve (fileSystem , name ))
51
+ serveFile (rtr , fileSystem , name )
52
+
48
53
}
49
54
}
50
55
}
0 commit comments