mv into func
This commit is contained in:
32
main.go
32
main.go
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user