This commit is contained in:
royalcat 2024-01-28 23:22:49 +03:00
parent 2cefb9db98
commit b97dcc8d8f
52 changed files with 7570 additions and 555 deletions
src/host/vfs

View file

@ -113,7 +113,29 @@ func (r *resolver) isNestedFs(f string) bool {
return true
}
}
return true
return false
}
func (r *resolver) nestedFs(fsPath string, file File) (Filesystem, error) {
for ext, nestFactory := range r.factories {
if !strings.HasSuffix(fsPath, ext) {
continue
}
if nestedFs, ok := r.fsmap[fsPath]; ok {
return nestedFs, nil
}
nestedFs, err := nestFactory(file)
if err != nil {
return nil, fmt.Errorf("error creating filesystem from file: %s with error: %w", fsPath, err)
}
r.fsmap[fsPath] = nestedFs
return nestedFs, nil
}
return nil, nil
}
// open requeue raw open, without resolver call
@ -173,7 +195,7 @@ var ErrNotExist = fs.ErrNotExist
func getFile[F File](m map[string]F, name string) (File, error) {
if name == Separator {
return &dir{}, nil
return NewDir(name), nil
}
f, ok := m[name]
@ -183,7 +205,7 @@ func getFile[F File](m map[string]F, name string) (File, error) {
for p := range m {
if strings.HasPrefix(p, name) {
return &dir{}, nil
return NewDir(name), nil
}
}