29 lines
532 B
Go
29 lines
532 B
Go
package fstest
|
|
|
|
import (
|
|
"io/fs"
|
|
"os"
|
|
"strings"
|
|
|
|
"github.com/spf13/afero"
|
|
)
|
|
|
|
type OpenErrorFs struct {
|
|
afero.MemMapFs
|
|
DenyPath string
|
|
}
|
|
|
|
func (m *OpenErrorFs) OpenFile(name string, flag int, perm os.FileMode) (afero.File, error) {
|
|
if strings.HasPrefix(name, m.DenyPath) {
|
|
return nil, fs.ErrPermission
|
|
}
|
|
return m.MemMapFs.OpenFile(name, flag, perm)
|
|
}
|
|
|
|
func (m *OpenErrorFs) Open(name string) (afero.File, error) {
|
|
if strings.HasPrefix(name, m.DenyPath) {
|
|
return nil, fs.ErrPermission
|
|
}
|
|
return m.MemMapFs.Open(name)
|
|
}
|