introduce rename struct

This commit is contained in:
itchyny 2020-01-07 21:45:36 +09:00
parent c7ce5a25a1
commit 02f7964dc5

20
mmv.go
View file

@ -4,10 +4,26 @@ import "os"
// Move multiple files.
func Move(files map[string]string) error {
for k, v := range files {
if err := os.Rename(k, v); err != nil {
rs, err := buildRenames(files)
if err != nil {
return err
}
for _, r := range rs {
if err := os.Rename(r.src, r.dst); err != nil {
return err
}
}
return nil
}
type rename struct {
src, dst string
}
func buildRenames(files map[string]string) ([]rename, error) {
rs := make([]rename, 0, 2*len(files))
for src, dst := range files {
rs = append(rs, rename{src, dst})
}
return rs, nil
}