From eb12586a40aea289f06018041e3168c60e5256dd Mon Sep 17 00:00:00 2001 From: bel Date: Sat, 16 Nov 2024 07:30:25 -0700 Subject: [PATCH] DONT FAIL FOREVER ON 1 BLACKOUT FILE loser --- cmd/prune/main.go | 63 +++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/cmd/prune/main.go b/cmd/prune/main.go index 6a3f63a..ef074a2 100644 --- a/cmd/prune/main.go +++ b/cmd/prune/main.go @@ -115,47 +115,52 @@ func Run(ctx context.Context, args []string) error { } return nil }(); err != nil { - return err + log.Println("failed series", series, ":", err) } } } for _, cam := range cams { - camMovementD := strings.ReplaceAll(cam, "record", "movement") + if err := func() error { + camMovementD := strings.ReplaceAll(cam, "record", "movement") - movementFiles, err := lsf(camMovementD) - if err != nil { - return err - } - sort.Strings(movementFiles) - - var sizeOfCamDMiB int64 - for _, movementFile := range movementFiles { - stat, err := os.Stat(movementFile) + movementFiles, err := lsf(camMovementD) if err != nil { return err } - fileSizeMiB := stat.Size() / 1024 / 1024 - sizeOfCamDMiB += fileSizeMiB - } + sort.Strings(movementFiles) - GiB100 := int64(100 * 1024) - for sizeOfCamDMiB > GiB100 && len(movementFiles) > 0 { - oldestFile := movementFiles[0] - - oldestFileStat, err := os.Stat(oldestFile) - if err != nil { - return err - } - oldestFileSizeMiB := oldestFileStat.Size() / 1024 / 1024 - - log.Println("deleting old file", oldestFile) - if err := os.Remove(oldestFile); err != nil { - return err + var sizeOfCamDMiB int64 + for _, movementFile := range movementFiles { + stat, err := os.Stat(movementFile) + if err != nil { + return err + } + fileSizeMiB := stat.Size() / 1024 / 1024 + sizeOfCamDMiB += fileSizeMiB } - sizeOfCamDMiB -= oldestFileSizeMiB - movementFiles = movementFiles[1:] + GiB100 := int64(100 * 1024) + for sizeOfCamDMiB > GiB100 && len(movementFiles) > 0 { + oldestFile := movementFiles[0] + + oldestFileStat, err := os.Stat(oldestFile) + if err != nil { + return err + } + oldestFileSizeMiB := oldestFileStat.Size() / 1024 / 1024 + + log.Println("deleting old file", oldestFile) + if err := os.Remove(oldestFile); err != nil { + return err + } + + sizeOfCamDMiB -= oldestFileSizeMiB + movementFiles = movementFiles[1:] + } + return nil + }(); err != nil { + log.Println("failed to cap size of cam", cam, " dir:", err) } }