package executor import ( "errors" "os" "path/filepath" "syscall" "github.com/containerd/continuity/fs" ) func MountStubsCleaner(dir string, mounts []Mount) func() { names := []string{"/etc/resolv.conf", "/etc/hosts"} for _, m := range mounts { names = append(names, m.Dest) } paths := make([]string, 0, len(names)) for _, p := range names { p = filepath.Join("/", p) if p == "/" { continue } realPath, err := fs.RootPath(dir, p) if err != nil { continue } _, err = os.Lstat(realPath) if errors.Is(err, os.ErrNotExist) || errors.Is(err, syscall.ENOTDIR) { paths = append(paths, realPath) } } return func() { for _, p := range paths { st, err := os.Lstat(p) if err != nil { continue } if st.Size() != 0 { continue } os.Remove(p) } } }