Save samovar, v4.
authorsgf <sgf.dma@gmail.com>
Tue, 21 Jun 2022 21:17:21 +0000 (00:17 +0300)
committersgf <sgf.dma@gmail.com>
Tue, 21 Jun 2022 21:17:21 +0000 (00:17 +0300)
samovar.go

index 6f134d6..98ac486 100644 (file)
@@ -9,38 +9,50 @@ import (
     "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()
@@ -50,8 +62,12 @@ func copyToLower(p0 string, d fs.DirEntry, err error) error {
         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))
@@ -137,27 +153,31 @@ func main() {
     }
     */
 
-    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))
+        }
+    }
+}