github.com/geofffranks/garden-linux@v0.0.0-20160715111146-26c893169cfa/linux_backend/rootfs_cleaner.go (about) 1 package linux_backend 2 3 import ( 4 "os" 5 "path/filepath" 6 7 "code.cloudfoundry.org/lager" 8 ) 9 10 type RootFSCleaner struct { 11 FilePaths []string 12 } 13 14 func (r *RootFSCleaner) Clean(log lager.Logger, path string) error { 15 log = log.Session("rootfs-cleaner", lager.Data{"path": path}) 16 17 for _, filePath := range r.FilePaths { 18 filePath = filepath.Join(path, filePath) 19 fi, err := os.Lstat(filePath) 20 if os.IsNotExist(err) { 21 continue 22 } 23 24 if fi.Mode()&os.ModeSymlink != 0 { 25 err := os.Remove(filePath) 26 if err != nil { 27 log.Error("symlink-remove-failed", err) 28 return err 29 } 30 } 31 } 32 33 return nil 34 }