github.com/k0marov/go-socnet@v0.0.0-20220715154813-90d07867c782/core/general/static_store/static_dir_deleter.go (about)

     1  package static_store
     2  
     3  import (
     4  	"fmt"
     5  	"github.com/k0marov/go-socnet/core/general/core_values"
     6  	"os"
     7  	"path/filepath"
     8  )
     9  
    10  // DirDeleter os.RemoveAll implements this
    11  type DirDeleter = func(dir string) error
    12  
    13  func NewStaticDirDeleter(deleteDir DirDeleter) StaticDirDeleter {
    14  	return func(dir core_values.StaticPath) error {
    15  		fullDir := filepath.Join(StaticDir, dir)
    16  		err := deleteDir(fullDir)
    17  		if err != nil {
    18  			return fmt.Errorf("while deleting a static dir (%v) : %w", fullDir, err)
    19  		}
    20  		return nil
    21  	}
    22  }
    23  
    24  func NewStaticDirDeleterImpl() StaticDirDeleter {
    25  	return NewStaticDirDeleter(os.RemoveAll)
    26  }