code cleanup

This commit is contained in:
Kovid Goyal
2026-04-27 09:54:03 +05:30
parent dc29e102cc
commit ffc39cabfd

View File

@@ -228,39 +228,41 @@ func find_overwrites(src_dir *os.File, dest_dir *os.File) (ans []string, err err
stack.push(".") stack.push(".")
for !stack.empty() { for !stack.empty() {
relpath := stack.pop() relpath := stack.pop()
sd, err := utils.OpenDirAt(src_dir, relpath) if err = func() (err error) {
if err != nil { sd, err := utils.OpenDirAt(src_dir, relpath)
return nil, err if err != nil {
} return err
src_children, err := sd.ReadDir(0)
sd.Close()
if err != nil {
return nil, err
}
dd, err := utils.OpenDirAt(dest_dir, relpath)
if err != nil {
return nil, err
}
dest_children, err := dd.ReadDir(0)
dd.Close()
if err != nil {
return nil, err
}
dest_map := make(map[string]os.DirEntry)
for _, x := range dest_children {
dest_map[x.Name()] = x
}
for _, x := range src_children {
if d, found := dest_map[x.Name()]; found {
relpath := utils.IfElse(relpath == ".", x.Name(), filepath.Join(relpath, x.Name()))
if !d.IsDir() || !x.IsDir() {
ans = append(ans, relpath)
} else {
stack.push(relpath)
}
} else {
continue
} }
defer sd.Close()
dd, err := utils.OpenDirAt(dest_dir, relpath)
if err != nil {
return err
}
defer dd.Close()
dest_children, err := dd.ReadDir(0)
src_children, err := sd.ReadDir(0)
if err != nil {
return err
}
dest_map := make(map[string]os.DirEntry)
for _, x := range dest_children {
dest_map[x.Name()] = x
}
for _, x := range src_children {
if d, found := dest_map[x.Name()]; found {
crelpath := utils.IfElse(relpath == ".", x.Name(), filepath.Join(relpath, x.Name()))
if !d.IsDir() || !x.IsDir() {
ans = append(ans, crelpath)
} else {
stack.push(crelpath)
}
} else {
continue
}
}
return
}(); err != nil {
return nil, err
} }
} }
return return
@@ -273,32 +275,34 @@ func rename_contents(src_dir *os.File, dest_dir *os.File) (err error) {
stack.push(".") stack.push(".")
for !stack.empty() { for !stack.empty() {
relpath := stack.pop() relpath := stack.pop()
sd, err := utils.OpenDirAt(src_dir, relpath)
if err != nil {
return err
}
src_children, err := sd.ReadDir(0)
if err != nil {
return err
}
dd, err := utils.OpenDirAt(dest_dir, relpath)
if err != nil {
sd.Close()
return err
}
if err = func() error { if err = func() error {
defer func() { sd, err := utils.OpenDirAt(src_dir, relpath)
sd.Close() if err != nil {
dd.Close() return err
}() }
for _, child := range src_children { defer sd.Close()
relpath := utils.IfElse(relpath == ".", child.Name(), filepath.Join(relpath, child.Name())) dd, err := utils.OpenDirAt(dest_dir, relpath)
rerr := utils.RenameAt(sd, child.Name(), dd, child.Name()) if err != nil {
if rerr != nil { return err
if child.IsDir() { }
stack.push(relpath) defer dd.Close()
} else { for {
return rerr src_children, err := sd.ReadDir(64)
if err != nil {
if errors.Is(err, io.EOF) {
break
}
return err
}
for _, child := range src_children {
crelpath := utils.IfElse(relpath == ".", child.Name(), filepath.Join(relpath, child.Name()))
rerr := utils.RenameAt(sd, child.Name(), dd, child.Name())
if rerr != nil {
if child.IsDir() {
stack.push(crelpath)
} else {
return rerr
}
} }
} }
} }