--- /dev/null
+package main
+
+import (
+ "fmt"
+ "path/filepath"
+ "io/fs"
+ "strings"
+ "os"
+ "io"
+ "errors"
+)
+
+var rootPath = "samovar"
+var newRootPath = "samovar2"
+
+var renamedFiles []string
+
+func copyToLower(p0 string, d fs.DirEntry, err error) error {
+ if err != nil { return err }
+
+ fmt.Println("Path: ", p0)
+ rel0, err := filepath.Rel(rootPath, p0)
+ if err != nil { return err }
+
+ rel1 := strings.ToLower(rel0)
+ if rel0 != rel1 {
+ renamedFiles = append(renamedFiles, p0)
+ }
+
+ p1 := filepath.Join(newRootPath, rel1)
+ fmt.Println("Renaming to ", p1)
+ inf0, err := d.Info()
+ if err != nil { return err }
+
+ fmt.Println(inf0.Mode())
+ if d.IsDir() {
+ err = os.Mkdir(p1, inf0.Mode())
+ if err != nil && !errors.Is(err, fs.ErrExist) {
+ return err
+ }
+ return nil
+ } else {
+ h0, err := os.Open(p0)
+ if err != nil { return err }
+ defer h0.Close()
+
+ h1, err := os.Create(p1)
+ if err != nil { return err }
+ defer h1.Close()
+
+ _, err = io.Copy(h1, h0)
+ return err
+ }
+
+ /*
+ err = os.Rename(p0, filepath.Join(newRootPath, relL))
+ if err != nil { return err }*/
+}
+
+func rewritePathes(p0 string, _ fs.DirEntry, err error) error {
+ return nil
+}
+
+func main() {
+ err := filepath.WalkDir(rootPath, copyToLower)
+ if err != nil {
+ fmt.Println(err)
+ fmt.Println("huynya bro")
+ }
+ fmt.Println(renamedFiles)
+}
+