Path: blob/main/vendor/github.com/spf13/afero/readonlyfs.go
2875 views
package afero12import (3"os"4"syscall"5"time"6)78var _ Lstater = (*ReadOnlyFs)(nil)910type ReadOnlyFs struct {11source Fs12}1314func NewReadOnlyFs(source Fs) Fs {15return &ReadOnlyFs{source: source}16}1718func (r *ReadOnlyFs) ReadDir(name string) ([]os.FileInfo, error) {19return ReadDir(r.source, name)20}2122func (r *ReadOnlyFs) Chtimes(n string, a, m time.Time) error {23return syscall.EPERM24}2526func (r *ReadOnlyFs) Chmod(n string, m os.FileMode) error {27return syscall.EPERM28}2930func (r *ReadOnlyFs) Chown(n string, uid, gid int) error {31return syscall.EPERM32}3334func (r *ReadOnlyFs) Name() string {35return "ReadOnlyFilter"36}3738func (r *ReadOnlyFs) Stat(name string) (os.FileInfo, error) {39return r.source.Stat(name)40}4142func (r *ReadOnlyFs) LstatIfPossible(name string) (os.FileInfo, bool, error) {43if lsf, ok := r.source.(Lstater); ok {44return lsf.LstatIfPossible(name)45}46fi, err := r.Stat(name)47return fi, false, err48}4950func (r *ReadOnlyFs) SymlinkIfPossible(oldname, newname string) error {51return &os.LinkError{Op: "symlink", Old: oldname, New: newname, Err: ErrNoSymlink}52}5354func (r *ReadOnlyFs) ReadlinkIfPossible(name string) (string, error) {55if srdr, ok := r.source.(LinkReader); ok {56return srdr.ReadlinkIfPossible(name)57}5859return "", &os.PathError{Op: "readlink", Path: name, Err: ErrNoReadlink}60}6162func (r *ReadOnlyFs) Rename(o, n string) error {63return syscall.EPERM64}6566func (r *ReadOnlyFs) RemoveAll(p string) error {67return syscall.EPERM68}6970func (r *ReadOnlyFs) Remove(n string) error {71return syscall.EPERM72}7374func (r *ReadOnlyFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) {75if flag&(os.O_WRONLY|syscall.O_RDWR|os.O_APPEND|os.O_CREATE|os.O_TRUNC) != 0 {76return nil, syscall.EPERM77}78return r.source.OpenFile(name, flag, perm)79}8081func (r *ReadOnlyFs) Open(n string) (File, error) {82return r.source.Open(n)83}8485func (r *ReadOnlyFs) Mkdir(n string, p os.FileMode) error {86return syscall.EPERM87}8889func (r *ReadOnlyFs) MkdirAll(n string, p os.FileMode) error {90return syscall.EPERM91}9293func (r *ReadOnlyFs) Create(n string) (File, error) {94return nil, syscall.EPERM95}969798