dry run by default

main
bel 2025-04-04 23:31:23 -06:00
parent 97d75d5d59
commit 4738a9da0a
1 changed files with 21 additions and 1 deletions

22
main.go
View File

@ -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)
}