"io"
"errors"
"bufio"
+ "log"
)
var rootPath = "samovar"
var newRootPath = "samovar2"
-var renamedFiles []string
+type renFile struct {
+ oldName string
+ newName string
+}
+var renamedFiles []renFile
+var yetToCopyFiles []renFile
+// Create directories and copy files, which don't need editing.
func copyToLower(p0 string, d fs.DirEntry, err error) error {
if err != nil { return err }
- fmt.Println("Path: ", p0)
+ log.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)
- }
+ //rel1 := rel0
p1 := filepath.Join(newRootPath, rel1)
- fmt.Println("Renaming to ", p1)
+ log.Println("New name ", p1)
inf0, err := d.Info()
if err != nil { return err }
- fmt.Println(inf0.Mode())
+ if rel0 != rel1 {
+ renamedFiles = append(renamedFiles, renFile{oldName: p0, newName: p1})
+ }
+
+ log.Println(inf0.Mode())
+ ext1 := filepath.Ext(p1)
+ log.Println(ext1)
if d.IsDir() {
+ log.Printf("Creating dir %v\n", p1)
err = os.Mkdir(p1, inf0.Mode())
if err != nil && !errors.Is(err, fs.ErrExist) {
return err
}
- return nil
- } else {
+ } else if ext1 != ".html" && ext1 != ".htm" && ext1 != ".asp" && ext1 != ".css" {
+ log.Printf("Copying file %v\n", p1)
h0, err := os.Open(p0)
if err != nil { return err }
defer h0.Close()
defer h1.Close()
_, err = io.Copy(h1, h0)
- return err
+ if err != nil { return err }
+ } else {
+ yetToCopyFiles = append(yetToCopyFiles, renFile{oldName: p0, newName: p1})
+ //yetToCopyFiles = append(yetToCopyFiles, renFile{oldName: p0, newName: filepath.Join(newRootPath, rel0)})
}
+ return nil
/*
err = os.Rename(p0, filepath.Join(newRootPath, relL))
}
*/
- h2, err := os.Open("int.go")
- if err != nil { panic("huynya") }
- defer h2.Close()
-
- h3, err := os.OpenFile("3.tmp", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
- if err != nil { panic("huynya") }
- defer h3.Close()
-
- s := bufio.NewScanner(h2)
- for s.Scan() {
- fmt.Printf("Scanner Received %q\n", s.Text())
- l := strings.ReplaceAll(s.Text(), "main", "NYAAA") + "\n"
- h3.Write([]byte(l))
- }
- return
+ var err error
err = filepath.WalkDir(rootPath, copyToLower)
if err != nil {
fmt.Println(err)
fmt.Println("huynya bro")
}
- fmt.Println(renamedFiles)
-}
+ fmt.Printf("%#v", yetToCopyFiles)
+ for _, fn := range yetToCopyFiles {
+ h0, err := os.Open(fn.oldName)
+ if err != nil { log.Fatal(err) }
+ defer h0.Close()
+ h1, err := os.OpenFile(fn.newName, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
+ if err != nil { log.Fatal(err) }
+ defer h1.Close()
+
+ s := bufio.NewScanner(h0)
+ for s.Scan() {
+ //log.Printf("Scanner read %q\n", s.Text())
+ //l := strings.ReplaceAll(s.Text(), "main", "NYAAA") + "\n"
+ l := s.Text()
+ if l == "<%@ language=JavaScript %>" { continue }
+ l = l + "\n"
+ h1.Write([]byte(l))
+ }
+ }
+}