From e18202568eaf99754ebb8930cd47019165f65c6b Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Thu, 7 Aug 2025 11:32:56 +0200 Subject: [PATCH] refactor: rename WORKDIR to ROOT, export env vars in debug.sh, enhance logging, and adjust path handling for clarity and robustness --- debug.sh | 5 +++++ main.go | 45 +++++++++++++++++++++++++++------------------ 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/debug.sh b/debug.sh index a220335..19401f0 100644 --- a/debug.sh +++ b/debug.sh @@ -1,4 +1,9 @@ +ROOT=~/Documents SCAN_INTERVAL=20s FORBIDDEN="3D Objects, Pictures, Recorded Calls, vmlogs, Music, Searches, Favorites, .wallaby, .android, .dotnet, .rest-client, .liner, .duckdb, .tree-sitter, .console-ninja, .quokka, .ipython, .templateengine, .dbus-keyrings, .azure, .aws, .dolt, .kube, .keras, .codegpt" +export SCAN_INTERVAL +export FORBIDDEN +export ROOT + go run . "$@" \ No newline at end of file diff --git a/main.go b/main.go index 9f7d540..62c4ec8 100644 --- a/main.go +++ b/main.go @@ -14,7 +14,7 @@ import ( ) type Config struct { - WorkDir string + Root string Patterns []string ScanInterval time.Duration } @@ -69,9 +69,9 @@ func loadConfig() Config { // but it is safe to call to honor standard logger flags if provided. logger.InitFlag() - workdir := filepath.ToSlash(strings.TrimSpace(getenv("WORKDIR", "/tmp"))) + root := filepath.ToSlash(strings.TrimSpace(getenv("ROOT", "/tmp"))) if pfx := strings.TrimSpace(getenv("PATH_PREFIX", "")); pfx != "" { - workdir = filepath.ToSlash(filepath.Join(workdir, pfx)) + root = filepath.ToSlash(filepath.Join(root, pfx)) } // Patterns from FORBIDDEN (comma-separated). Relative to WorkDir. @@ -88,13 +88,13 @@ func loadConfig() Config { interval := time.Duration(parseDurationMS(getenv("SCAN_INTERVAL", "60s"))) * time.Millisecond logger.Info("Config:") - logger.Info(" WORKDIR: %s", workdir) + logger.Info(" ROOT: %s", root) logger.Info(" PATH_PREFIX: %s", getenv("PATH_PREFIX", "")) logger.Info(" FORBIDDEN: %v", patterns) logger.Info(" SCAN_INTERVAL(ms): %d", interval.Milliseconds()) return Config{ - WorkDir: workdir, + Root: root, Patterns: patterns, ScanInterval: interval, } @@ -102,50 +102,59 @@ func loadConfig() Config { func deleteMatches(cfg Config) { log := logger.Default.WithPrefix("deleteMatches") + log.Debug("Starting deleteMatches operation.") + log.Trace("Config: %+v", cfg) - if cfg.WorkDir == "" { - log.Error("WorkDir is empty") + if cfg.Root == "" { + log.Error("Root is empty") return } - if _, err := os.Stat(cfg.WorkDir); err != nil { - log.Error("WorkDir not accessible %s: %v", cfg.WorkDir, err) + if _, err := os.Stat(cfg.Root); err != nil { + log.Error("Root not accessible %s: %v", cfg.Root, err) return } for _, pat := range cfg.Patterns { + patlog := log.WithPrefix(pat) + patlog.Debug("Processing pattern") if pat == "" { continue } - matches, err := doublestar.Glob(os.DirFS(cfg.WorkDir), pat) + matches, err := doublestar.Glob(os.DirFS(cfg.Root), pat) if err != nil { - log.Error("glob %q: %v", pat, err) + patlog.Error("glob %q: %v", pat, err) continue } if len(matches) == 0 { - log.Debug("No matches for pattern %q", pat) + patlog.Debug("No matches for pattern") continue } + patlog.Trace("Found matches for pattern %q: %v", pat, matches) for _, rel := range matches { - full := filepath.Clean(filepath.Join(cfg.WorkDir, rel)) + itemlog := patlog.WithPrefix(rel) + itemlog.Debug("Processing matched item") + full := filepath.Clean(filepath.Join(cfg.Root, rel)) info, err := os.Stat(full) if err != nil { - log.Warning("stat %s: %v", full, err) + itemlog.Warning("stat %s: %v", full, err) continue } if info.IsDir() { - log.Info("Removing directory %s", full) + itemlog.Info("Removing directory %s", full) } else { - log.Info("Removing file %s", full) + itemlog.Info("Removing file %s", full) } - + itemlog.Trace("Attempting to remove: %s", full) if err := os.RemoveAll(full); err != nil { - log.Error("remove %s: %v", full, err) + itemlog.Error("remove %s: %v", full, err) continue } + itemlog.Debug("Successfully removed") } } + log.Debug("Finished deleteMatches operation.") } func doRun(cfg Config) {