feat: cleanup old backups
parent
3fc3b8cb18
commit
6929a86485
@ -0,0 +1,35 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"sort"
|
||||
)
|
||||
|
||||
func cleanupOldBackups() error {
|
||||
files, err := ioutil.ReadDir(config.Folder)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if len(files) < config.MaxBackups {
|
||||
return nil
|
||||
}
|
||||
|
||||
sort.Slice(files, func(i, j int) bool {
|
||||
return files[i].ModTime().Unix() < files[j].ModTime().Unix()
|
||||
})
|
||||
|
||||
oldest := files[:len(files)-config.MaxBackups]
|
||||
|
||||
for _, file := range oldest {
|
||||
log.Printf("Removing old backup folder %s...\n", file.Name())
|
||||
err = os.RemoveAll(config.Folder + file.Name())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Loading…
Reference in New Issue