X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=cleanup.go;h=efc2e97e9f5956b4fe16b0c3465141a7349479b3;hb=HEAD;hp=0f779972fd8d8dfe4d6dec453bb06e2372e733d4;hpb=d9d136ebf49a2906cd0b1def833ade96784626f6;p=goredo.git diff --git a/cleanup.go b/cleanup.go index 0f77997..efc2e97 100644 --- a/cleanup.go +++ b/cleanup.go @@ -1,19 +1,17 @@ -/* -goredo -- djb's redo implementation on pure Go -Copyright (C) 2020-2023 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 -the Free Software Foundation, version 3 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +// goredo -- djb's redo implementation on pure Go +// Copyright (C) 2020-2024 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 +// the Free Software Foundation, version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . package main @@ -24,7 +22,6 @@ import ( "log" "os" "path" - "path/filepath" "strings" ) @@ -45,13 +42,10 @@ func init() { } func redoDirClean(root, what string) error { - root, err := filepath.Abs(root) - if err != nil { - panic(err) - } + root = mustAbs(root) dir, err := os.Open(root) if err != nil { - return err + return ErrLine(err) } defer dir.Close() for { @@ -60,7 +54,7 @@ func redoDirClean(root, what string) error { if err == io.EOF { break } - return err + return ErrLine(err) } var pth string for _, entry := range entries { @@ -72,7 +66,7 @@ func redoDirClean(root, what string) error { fmt.Println(pth) if !*DryRun { if err = os.Remove(pth); err != nil { - return err + return ErrLine(err) } } } @@ -81,7 +75,7 @@ func redoDirClean(root, what string) error { fmt.Println(pth) if !*DryRun { if err = os.Remove(pth); err != nil { - return err + return ErrLine(err) } } } @@ -90,7 +84,7 @@ func redoDirClean(root, what string) error { fmt.Println(pth) if !*DryRun { if err = os.Remove(pth); err != nil { - return err + return ErrLine(err) } } } @@ -103,13 +97,10 @@ func redoDirClean(root, what string) error { } func cleanupWalker(root, what string) error { - root, err := filepath.Abs(root) - if err != nil { - panic(err) - } + root = mustAbs(root) dir, err := os.Open(root) if err != nil { - return err + return ErrLine(err) } defer dir.Close() for { @@ -118,7 +109,7 @@ func cleanupWalker(root, what string) error { if err == io.EOF { break } - return err + return ErrLine(err) } for _, entry := range entries { pth := path.Join(root, entry.Name()) @@ -128,7 +119,7 @@ func cleanupWalker(root, what string) error { if what == CleanupFull { fmt.Println(pthRel) if !*DryRun { - err = os.RemoveAll(pth) + err = ErrLine(os.RemoveAll(pth)) } } else { err = redoDirClean(pth, what) @@ -137,7 +128,7 @@ func cleanupWalker(root, what string) error { strings.HasPrefix(entry.Name(), TmpPrefix) { fmt.Println(pthRel) if !*DryRun { - err = os.RemoveAll(pth) + err = ErrLine(os.RemoveAll(pth)) } } else { err = cleanupWalker(pth, what) @@ -152,7 +143,7 @@ func cleanupWalker(root, what string) error { fmt.Println(pthRel) if !*DryRun { if err = os.Remove(pth); err != nil { - return err + return ErrLine(err) } } }