summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2024-05-12 14:33:07 +0700
committerShulhan <ms@kilabit.info>2024-05-12 14:33:07 +0700
commitd5542dc8956c5d084817b60ed7451870c7175865 (patch)
treef0aa5ce816db3a06debf065af91562efc564453d
parentd71ceabc9c65014be2de9877e351b952231a49e3 (diff)
downloadciigo-d5542dc8956c5d084817b60ed7451870c7175865.tar.xz
all: initialize memfs using New
When memfs not initialized using New, the [memfs.MemFS.PathNodes] will be nil. This cause any Get on new file will return 404.
-rw-r--r--server.go19
1 files changed, 11 insertions, 8 deletions
diff --git a/server.go b/server.go
index 1d48e7e..8ad76d1 100644
--- a/server.go
+++ b/server.go
@@ -31,17 +31,20 @@ func newServer(opts *ServeOptions) (srv *server, err error) {
var logp = `newServer`
if opts.Mfs == nil {
- opts.Mfs = &memfs.MemFS{
- Opts: &memfs.Options{
- Root: opts.Root,
- Excludes: defExcludes,
- },
- }
opts.IsDevelopment = true
+ var mfsopts = &memfs.Options{
+ Root: opts.Root,
+ Excludes: defExcludes,
+ TryDirect: true,
+ }
+ opts.Mfs, err = memfs.New(mfsopts)
+ if err != nil {
+ return nil, fmt.Errorf(`%s: %w`, logp, err)
+ }
+ } else {
+ opts.Mfs.Opts.TryDirect = opts.IsDevelopment
}
- opts.Mfs.Opts.TryDirect = opts.IsDevelopment
-
srv = &server{
opts: *opts,
}