github.com/kubeshop/testkube@v1.17.23/pkg/filesystem/os_filesystem.go (about)

     1  package filesystem
     2  
     3  import (
     4  	"bufio"
     5  	"os"
     6  	"path/filepath"
     7  )
     8  
     9  type OSFileSystem struct{}
    10  
    11  func NewOSFileSystem() *OSFileSystem {
    12  	return &OSFileSystem{}
    13  }
    14  
    15  func (s *OSFileSystem) Stat(name string) (os.FileInfo, error) {
    16  	return os.Stat(name)
    17  }
    18  
    19  func (s *OSFileSystem) Walk(root string, walkFn filepath.WalkFunc) error {
    20  	return filepath.Walk(root, walkFn)
    21  }
    22  
    23  func (s *OSFileSystem) OpenFile(name string, flag int, perm os.FileMode) (*os.File, error) {
    24  	return os.OpenFile(name, flag, perm)
    25  }
    26  
    27  func (s *OSFileSystem) OpenFileRO(name string) (*os.File, error) {
    28  	return os.Open(name)
    29  }
    30  
    31  func (s *OSFileSystem) OpenFileBuffered(name string) (*bufio.Reader, error) {
    32  	f, err := os.Open(name)
    33  	if err != nil {
    34  		return nil, err
    35  	}
    36  
    37  	return bufio.NewReader(f), nil
    38  }
    39  
    40  func (s *OSFileSystem) ReadDir(dirname string) ([]os.DirEntry, error) {
    41  	return os.ReadDir(dirname)
    42  }
    43  
    44  func (s *OSFileSystem) Getwd() (string, error) {
    45  	return os.Getwd()
    46  }
    47  
    48  func (s *OSFileSystem) ReadFile(filename string) ([]byte, error) {
    49  	return os.ReadFile(filename)
    50  }
    51  
    52  var _ FileSystem = (*OSFileSystem)(nil)