From 4738a9da0aad4612e09ece9895acd2835301d335 Mon Sep 17 00:00:00 2001 From: bel Date: Fri, 4 Apr 2025 23:31:23 -0600 Subject: [PATCH] dry run by default --- main.go | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index c1d8d9e..6105843 100644 --- a/main.go +++ b/main.go @@ -5,6 +5,7 @@ import ( "encoding/json" "flag" "fmt" + "log" "os" "os/signal" "path" @@ -29,6 +30,7 @@ func main() { overridesS := flags.String("c", `{"title":"","season":"","episode":""}`, "overrides") ind := flags.String("i", "/dev/null", "in dir") outd := flags.String("o", "/dev/null", "out dir") + dry := flags.Bool("d", true, "dry run") if err := flags.Parse(os.Args[1:]); err != nil { panic(err) } @@ -36,12 +38,30 @@ func main() { var overrides Fields json.Unmarshal([]byte(*overridesS), &overrides) + mvNLn := RealMvNLn + if *dry { + outd := map[string]struct{}{} + mvNLn = func(outf, inf string) error { + if _, err := os.Stat(outf); err == nil { + return nil + } + + if _, ok := outd[outf]; ok { + return nil + } + outd[outf] = struct{}{} + + log.Printf("mv %q %q", inf, outf) + return nil + } + } + if err := Run(ctx, *outd, *ind, flags.Args(), overrides, - RealMvNLn, + mvNLn, ); err != nil { panic(err) }