X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=cleanup.go;h=d25aa3de02e91b31aabf7b758564f3de739eb244;hb=5d6d5828df0e350a7f9b6a829b364f87bf47d1d5;hp=dff0ee0a64fb217bbe03a9bc465388fbd187c147;hpb=368922086630cdcf1980d372006eb4bf6b459d5a;p=goredo.git diff --git a/cleanup.go b/cleanup.go index dff0ee0..d25aa3d 100644 --- a/cleanup.go +++ b/cleanup.go @@ -1,6 +1,6 @@ /* goredo -- djb's redo implementation on pure Go -Copyright (C) 2020-2021 Sergey Matveev +Copyright (C) 2020-2022 Sergey Matveev This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -52,6 +52,7 @@ func redoDirClean(root, what string) error { if err != nil { return err } + defer dir.Close() for { fis, err := dir.Readdir(1 << 10) if err != nil { @@ -66,7 +67,7 @@ func redoDirClean(root, what string) error { switch what { case CleanupLog: if strings.HasSuffix(fi.Name(), LogSuffix) || - strings.HasSuffix(fi.Name(), LogSuffix+DepSuffix) { + strings.HasSuffix(fi.Name(), LogRecSuffix) { fmt.Println(pth) if !*DryRun { if err = os.Remove(pth); err != nil { @@ -88,7 +89,7 @@ func redoDirClean(root, what string) error { } } } - return dir.Close() + return nil } func cleanupWalker(root, what string) error { @@ -122,6 +123,12 @@ func cleanupWalker(root, what string) error { } else { err = redoDirClean(pth, what) } + } else if (what == CleanupTmp || what == CleanupFull) && + strings.HasPrefix(fi.Name(), TmpPrefix) { + fmt.Println(pthRel) + if !*DryRun { + err = os.RemoveAll(pth) + } } else { err = cleanupWalker(pth, what) } @@ -141,5 +148,5 @@ func cleanupWalker(root, what string) error { } } } - return dir.Close() + return nil }