mv into func

main
Bel LaPointe 2025-04-04 23:51:12 -06:00
parent 8185311a4f
commit 6af1f231df
1 changed files with 18 additions and 14 deletions

32
main.go
View File

@ -56,20 +56,7 @@ func Main(ctx context.Context) error {
mvNLn := RealMvNLn mvNLn := RealMvNLn
if *dry { if *dry {
outd := map[string]struct{}{} mvNLn = DryMvNLn()
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{}{}
fmt.Fprintf(os.Stderr, "mv %q %q\n", inf, outf)
return nil
}
} }
return Run(ctx, return Run(ctx,
@ -151,3 +138,20 @@ func RealMvNLn(outf, inf string) error {
} }
return os.Symlink(outf, inf) return os.Symlink(outf, inf)
} }
func DryMvNLn() func(string, string) error {
outd := map[string]struct{}{}
return func(outf, inf string) error {
if _, err := os.Stat(outf); err == nil {
return nil
}
if _, ok := outd[outf]; ok {
return nil
}
outd[outf] = struct{}{}
fmt.Fprintf(os.Stderr, "mv %q %q\n", inf, outf)
return nil
}
}