diff --git a/cleaner/go.mod b/cleaner/go.mod index 5081a81..0bab015 100644 --- a/cleaner/go.mod +++ b/cleaner/go.mod @@ -1,3 +1,14 @@ module tcleaner go 1.23.6 + +require git.site.quack-lab.dev/dave/cylogger v1.4.0 + +require ( + github.com/google/go-cmp v0.5.9 // indirect + github.com/hexops/valast v1.5.0 // indirect + golang.org/x/mod v0.7.0 // indirect + golang.org/x/sys v0.3.0 // indirect + golang.org/x/tools v0.4.0 // indirect + mvdan.cc/gofumpt v0.4.0 // indirect +) diff --git a/cleaner/go.sum b/cleaner/go.sum new file mode 100644 index 0000000..33bd5b7 --- /dev/null +++ b/cleaner/go.sum @@ -0,0 +1,28 @@ +git.site.quack-lab.dev/dave/cylogger v1.4.0 h1:3Ca7V5JWvruARJd5S8xDFwW9LnZ9QInqkYLRdrEFvuY= +git.site.quack-lab.dev/dave/cylogger v1.4.0/go.mod h1:wctgZplMvroA4X6p8f4B/LaCKtiBcT1Pp+L14kcS8jk= +github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/hexops/autogold v0.8.1 h1:wvyd/bAJ+Dy+DcE09BoLk6r4Fa5R5W+O+GUzmR985WM= +github.com/hexops/autogold v0.8.1/go.mod h1:97HLDXyG23akzAoRYJh/2OBs3kd80eHyKPvZw0S5ZBY= +github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= +github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= +github.com/hexops/valast v1.5.0 h1:FBTuvVi0wjTngtXJRZXMbkN/Dn6DgsUsBwch2DUJU8Y= +github.com/hexops/valast v1.5.0/go.mod h1:Jcy1pNH7LNraVaAZDLyv21hHg2WBv9Nf9FL6fGxU7o4= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4= +golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= +mvdan.cc/gofumpt v0.4.0 h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM= +mvdan.cc/gofumpt v0.4.0/go.mod h1:PljLOHDeZqgS8opHRKLzp2It2VBuSdteAgqUfzMTxlQ= diff --git a/cleaner/main.go b/cleaner/main.go index 4f1985e..e601f5d 100644 --- a/cleaner/main.go +++ b/cleaner/main.go @@ -6,51 +6,62 @@ import ( "os" "path/filepath" "regexp" + logger "git.site.quack-lab.dev/dave/cylogger" ) func main() { flag.Parse() + logger.InitFlag() if flag.NArg() == 0 { fmt.Println("Usage: cleaner ") os.Exit(1) } - // regex to match " - 2025-07-08 01h31m45s - " - re := regexp.MustCompile(` - (\d{4}-\d{2}-\d{2} \d{2}h\d{2}m\d{2}s) - `) + // regex to match "2025-07-08" + re := regexp.MustCompile(`(\d{4}-\d{2}-\d{2})`) for _, file := range flag.Args() { + filelog := logger.Default.WithPrefix(file) + filelog.Info("Processing file") + info, err := os.Stat(file) if err != nil { - fmt.Printf("ERROR: %v\n", err) + filelog.Error("ERROR: %v\n", err) continue } if info.IsDir() { - fmt.Printf("SKIP (directory): %s\n", file) + filelog.Info("SKIP (directory): %s\n", file) continue } + name := filepath.Base(file) match := re.FindStringSubmatch(name) + filelog.Debug("Match: %v", match) if match == nil { - fmt.Printf("SKIP (no date pattern): %s\n", name) + filelog.Info("SKIP (no date pattern): %s\n", name) continue } newName := match[1] + filepath.Ext(name) + filelog.Debug("New name: %s", newName) if name == newName { - fmt.Printf("SKIP (already named): %s\n", name) + filelog.Info("SKIP (already named): %s\n", name) continue } + filelog.Debug("Checking if target exists: %s", newName) if _, err := os.Stat(newName); err == nil { - fmt.Printf("SKIP (target exists): %s -> %s\n", name, newName) + filelog.Info("SKIP (target exists): %s -> %s\n", name, newName) continue } + filelog.Info("Renaming to: %s", newName) err = os.Rename(name, newName) if err != nil { - fmt.Printf("ERROR renaming %s: %v\n", name, err) + filelog.Error("ERROR renaming %s: %v\n", name, err) } else { - fmt.Printf("RENAMED: %s -> %s\n", name, newName) + filelog.Info("RENAMED: %s -> %s\n", name, newName) } + filelog.Info("All done") continue } }