github.com/Cloud-Foundations/Dominator@v0.3.4/lib/filesystem/util/filter.go (about)

     1  package util
     2  
     3  import (
     4  	"os"
     5  	"path/filepath"
     6  
     7  	"github.com/Cloud-Foundations/Dominator/lib/filter"
     8  )
     9  
    10  func deletedFilteredFiles(rootDir string, filt *filter.Filter) error {
    11  	startPos := len(rootDir)
    12  	return filepath.Walk(rootDir,
    13  		func(path string, fi os.FileInfo, err error) error {
    14  			if err != nil {
    15  				return err
    16  			}
    17  			if filt.Match(path[startPos:]) {
    18  				if err := os.RemoveAll(path); err != nil {
    19  					return err
    20  				}
    21  				if fi.IsDir() {
    22  					return filepath.SkipDir
    23  				}
    24  			}
    25  			return nil
    26  		})
    27  }