add -find_cache_prunes
specify prune directories, space spapated.
imply -use_find_cache true if -find_cache_prunes given.
e.g.
kati -find_cache_prunes=".repo .git"
diff --git a/pathutil.go b/pathutil.go
index 00162b5..31a9e55 100644
--- a/pathutil.go
+++ b/pathutil.go
@@ -98,14 +98,15 @@
return c.ok
}
-func (c *androidFindCacheT) init() {
+func (c *androidFindCacheT) init(prunes []string) {
c.once.Do(func() {
c.mu.Lock()
- go c.start()
+ go c.start(prunes)
})
}
-func (c *androidFindCacheT) start() {
+func (c *androidFindCacheT) start(prunes []string) {
+ Logf("find cache init: %q", prunes)
defer c.mu.Unlock()
t := time.Now()
defer func() {
@@ -114,13 +115,21 @@
}()
err := filepath.Walk(".", func(path string, info os.FileInfo, err error) error {
+ if info.IsDir() {
+ for _, prune := range prunes {
+ if info.Name() == prune {
+ Logf("find cache prune: %s", path)
+ return filepath.SkipDir
+ }
+ }
+ }
c.files = append(c.files, fileInfo{
path: strings.TrimPrefix(path, "./"),
mode: info.Mode(),
})
return nil
})
- if err != nil {
+ if err != nil && err != filepath.SkipDir {
Logf("error in adnroid find cache: %v", err)
c.ok = false
return