From 2cd2fd732bd6cb145aea277ce765bb71225d2dfe Mon Sep 17 00:00:00 2001 From: TJ Holowaychuk Date: Sat, 18 Nov 2017 18:06:17 -0800 Subject: [PATCH] add skipped dir stats --- prune.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/prune.go b/prune.go index 496788c..ef442df 100644 --- a/prune.go +++ b/prune.go @@ -151,6 +151,14 @@ func (p Pruner) Prune() (*Stats, error) { stats.FilesRemoved++ stats.SizeRemoved += info.Size() + // dir stats + if info.IsDir() { + s, _ := dirStats(path) + stats.FilesTotal += s.FilesTotal + stats.FilesRemoved += s.FilesRemoved + stats.SizeRemoved += s.SizeRemoved + } + // remove and skip dir if info.IsDir() { if err := os.RemoveAll(path); err != nil { @@ -190,6 +198,20 @@ func (p Pruner) prune(path string, info os.FileInfo) bool { return ok } +// dirStats returns stats for files in dir. +func dirStats(dir string) (*Stats, error) { + var stats Stats + + err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error { + stats.FilesTotal++ + stats.FilesRemoved++ + stats.SizeRemoved += info.Size() + return err + }) + + return &stats, err +} + // toMap returns a map from slice. func toMap(s []string) map[string]struct{} { m := make(map[string]struct{})