mirror of
https://github.com/itchyny/mmv.git
synced 2025-12-26 22:24:58 +08:00
introduce rename struct
This commit is contained in:
parent
c7ce5a25a1
commit
02f7964dc5
1 changed files with 18 additions and 2 deletions
20
mmv.go
20
mmv.go
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue