From c8503ce52271259d2dd69f39c64946b005af9202 Mon Sep 17 00:00:00 2001 From: sgf Date: Wed, 22 Jun 2022 00:17:21 +0300 Subject: [PATCH] Save samovar, v4. --- samovar.go | 74 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 27 deletions(-) diff --git a/samovar.go b/samovar.go index 6f134d6..98ac486 100644 --- a/samovar.go +++ b/samovar.go @@ -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)) + } + } +} -- 2.20.1