github.com/3JoB/vfs@v1.0.0/example_wrapping_test.go (about)

     1  package vfs_test
     2  
     3  import (
     4  	"errors"
     5  	"fmt"
     6  	"os"
     7  
     8  	"github.com/3JoB/vfs"
     9  )
    10  
    11  type noNewDirs struct {
    12  	vfs.Filesystem
    13  }
    14  
    15  func NoNewDirs(fs vfs.Filesystem) *noNewDirs {
    16  	return &noNewDirs{Filesystem: fs}
    17  }
    18  
    19  // Mkdir is disabled
    20  func (fs *noNewDirs) Mkdir(name string, perm os.FileMode) error {
    21  	return errors.New("Mkdir disabled!")
    22  }
    23  
    24  func ExampleOsFS_myWrapper() {
    25  	// Disable Mkdirs on the OS Filesystem
    26  	var fs vfs.Filesystem = NoNewDirs(vfs.OS())
    27  
    28  	err := fs.Mkdir("/tmp", 0777)
    29  	if err != nil {
    30  		fmt.Print("Mkdir disabled!\n")
    31  	}
    32  }