From ac50d61f0c169dff0415bd0fede68649eac6d38d Mon Sep 17 00:00:00 2001 From: Felicitas Pojtinger Date: Tue, 21 Dec 2021 22:04:35 +0100 Subject: [PATCH] feat: Implement `MkdirAll` --- internal/fs/filesystem.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/internal/fs/filesystem.go b/internal/fs/filesystem.go index 3002ec4..390a26f 100644 --- a/internal/fs/filesystem.go +++ b/internal/fs/filesystem.go @@ -139,7 +139,22 @@ func (f *FileSystem) Mkdir(name string, perm os.FileMode) error { func (f *FileSystem) MkdirAll(path string, perm os.FileMode) error { log.Println("FileSystem.MkdirAll", path, perm) - panic(ErrNotImplemented) + parts := filepath.SplitList(path) + currentPath := "" + + for _, part := range parts { + if currentPath == "" { + currentPath = part + } else { + currentPath = filepath.Join(currentPath, part) + } + + if err := f.Mkdir(currentPath, perm); err != nil { + return err + } + } + + return nil } func (f *FileSystem) Open(name string) (afero.File, error) {