Prevent archiving already archived files

This commit is contained in:
2025-08-21 13:39:51 +02:00
parent d95182f187
commit 0ebafa2e99

13
main.go
View File

@@ -80,6 +80,10 @@ func loadConfig() Constants {
archive := filepath.ToSlash(strings.TrimSpace(getenv("ROOT_ARCHIVE", root+"/archive"))) archive := filepath.ToSlash(strings.TrimSpace(getenv("ROOT_ARCHIVE", root+"/archive")))
_ = os.MkdirAll(archive, os.ModePerm) _ = os.MkdirAll(archive, os.ModePerm)
// TODO: This just doesn't really work or do what it says it does
// Fix it...
// Right now we don't care because we're not using it
// But we might want to...
ignored := []string{} ignored := []string{}
if ig := strings.TrimSpace(getenv("IGNORED_DIRECTORIES", "")); ig != "" { if ig := strings.TrimSpace(getenv("IGNORED_DIRECTORIES", "")); ig != "" {
for _, s := range strings.Split(ig, ",") { for _, s := range strings.Split(ig, ",") {
@@ -88,7 +92,6 @@ func loadConfig() Constants {
} }
} }
} }
ignored = append(ignored, filepath.ToSlash(archive))
archiveMs := parseDurationMS(getenv("ARCHIVE_THRESHOLD", "1d")) archiveMs := parseDurationMS(getenv("ARCHIVE_THRESHOLD", "1d"))
deleteMs := parseDurationMS(getenv("DELETE_THRESHOLD", "12h")) deleteMs := parseDurationMS(getenv("DELETE_THRESHOLD", "12h"))
@@ -161,8 +164,13 @@ func archiveCandidate(path string, info os.FileInfo) {
log.Warning("rel ROOT->%s: %v", path, err) log.Warning("rel ROOT->%s: %v", path, err)
return return
} }
if strings.HasPrefix(rel, "archive") {
log.Debug("refusing to archive a file that's already archived")
return
}
log.Debug("rel %q", rel)
dst := filepath.Join(constants.ROOT_ARCHIVE, rel) dst := filepath.Join(constants.ROOT_ARCHIVE, rel)
log.Debug("dst %s", dst) log.Debug("dst %q", dst)
if err := os.MkdirAll(filepath.Dir(dst), os.ModePerm); err != nil { if err := os.MkdirAll(filepath.Dir(dst), os.ModePerm); err != nil {
log.Error("mkdir %s: %v", filepath.Dir(dst), err) log.Error("mkdir %s: %v", filepath.Dir(dst), err)
@@ -328,7 +336,6 @@ func main() {
logger.Info("Starting directory cleaner") logger.Info("Starting directory cleaner")
constants = loadConfig() constants = loadConfig()
constants.USE_MODTIME = true
logger.Info("Ready. First scan in %s", constants.SCAN_INTERVAL) logger.Info("Ready. First scan in %s", constants.SCAN_INTERVAL)
// Run immediately, then on interval // Run immediately, then on interval