From 59fa4ace1e8d27e04d9f5f22c2b794b9379bd785 Mon Sep 17 00:00:00 2001 From: askuy Date: Mon, 27 Jul 2020 13:09:56 +0800 Subject: [PATCH 1/5] Revert "Only contents in "CompareExcept" are excluded during comparison" This reverts commit a9d3de0872034b4c11108723f6d15ce2a8ac5d52. --- internal/app/module/beegopro/config.go | 2 -- internal/app/module/beegopro/render.go | 5 ++- internal/app/module/beegopro/util.go | 47 ++++++++++---------------- 3 files changed, 19 insertions(+), 35 deletions(-) diff --git a/internal/app/module/beegopro/config.go b/internal/app/module/beegopro/config.go index 716533c..f4854fe 100644 --- a/internal/app/module/beegopro/config.go +++ b/internal/app/module/beegopro/config.go @@ -6,8 +6,6 @@ import ( "io/ioutil" ) -var CompareExcept = []string{"@BeeGenerateTime"} - func (c *Container) GenConfig() { if utils.IsExist(c.BeegoProFile) { beeLogger.Log.Fatalf("beego pro toml exist") diff --git a/internal/app/module/beegopro/render.go b/internal/app/module/beegopro/render.go index 7fe55a2..3be18a1 100644 --- a/internal/app/module/beegopro/render.go +++ b/internal/app/module/beegopro/render.go @@ -130,8 +130,7 @@ func (r *RenderFile) Exec(name string) { } // Replace or create when content changes output := []byte(buf) - ext := filepath.Ext(r.FlushFile) - if r.Option.EnableFormat && ext == ".go" { + if r.Option.EnableFormat && filepath.Ext(r.FlushFile) == ".go" { // format code var bts []byte bts, err = format.Source([]byte(buf)) @@ -142,7 +141,7 @@ func (r *RenderFile) Exec(name string) { output = bts } - if FileContentChange(orgContent,output,GetSeg(ext)) { + if FileContentChange(orgContent,output) { err = r.write(r.FlushFile, output) if err != nil { beeLogger.Log.Fatalf("Could not create file: %s", err) diff --git a/internal/app/module/beegopro/util.go b/internal/app/module/beegopro/util.go index b2bd05d..f6baee6 100644 --- a/internal/app/module/beegopro/util.go +++ b/internal/app/module/beegopro/util.go @@ -80,7 +80,11 @@ func (c *RenderFile) write(filename string, buf []byte) (err error) { } func isNeedOverwrite(fileName string) (flag bool) { - seg := GetSeg(filepath.Ext(fileName)) + seg := "//" + ext := filepath.Ext(fileName) + if ext == ".sql" { + seg = "--" + } f, err := os.Open(fileName) if err != nil { @@ -186,12 +190,21 @@ func getModelType(orm string) (inputType, goType, mysqlType, tag string) { return } -func FileContentChange(org,new []byte, seg string) bool { +func FileContentChange(org,new []byte) bool { if len(org) == 0 { return true } - orgContent := GetFilterContent(string(org),seg) - newContent := GetFilterContent(string(org),string(new)) + var orgContent,newContent string + for i, s := range strings.Split(string(org), "\n") { + if i > 1 { + orgContent += s + } + } + for i, s := range strings.Split(string(new), "\n") { + if i > 1 { + newContent += s + } + } orgMd5 := md5.Sum([]byte(orgContent)) newMd5:= md5.Sum([]byte(newContent)) if orgMd5 != newMd5 { @@ -199,30 +212,4 @@ func FileContentChange(org,new []byte, seg string) bool { } beeLogger.Log.Infof("File has no change in the content") return false -} - -func GetFilterContent(content string, seg string) string { - res := "" - for _, s := range strings.Split(content, "\n") { - s = strings.TrimSpace(strings.TrimPrefix(s, seg)) - var have = false - for _,except := range CompareExcept{ - if strings.HasPrefix(s, except) { - have = true - } - } - if !have { - res += s - } - } - return res -} - -func GetSeg(ext string) string { - switch ext { - case ".sql": - return "--" - default: - return "//" - } } \ No newline at end of file From 0a2c7f0c5742106aafe99cb69e880702398be392 Mon Sep 17 00:00:00 2001 From: askuy Date: Mon, 27 Jul 2020 13:09:56 +0800 Subject: [PATCH 2/5] Revert "Compare content after formatting" This reverts commit 174d2ab2e87303b289e8fcf87ddd804a1927b0c8. --- internal/app/module/beegopro/render.go | 20 +++----------- internal/app/module/beegopro/util.go | 37 ++++++++++++++++++-------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/internal/app/module/beegopro/render.go b/internal/app/module/beegopro/render.go index 3be18a1..64c52fc 100644 --- a/internal/app/module/beegopro/render.go +++ b/internal/app/module/beegopro/render.go @@ -1,13 +1,11 @@ package beegopro import ( - "errors" "github.com/beego/bee/internal/pkg/system" beeLogger "github.com/beego/bee/logger" "github.com/davecgh/go-spew/spew" "github.com/flosch/pongo2" "github.com/smartwalle/pongo2render" - "go/format" "io/ioutil" "os" "path" @@ -122,27 +120,15 @@ func (r *RenderFile) Exec(name string) { var orgContent []byte if err == nil { if org, err := os.OpenFile(r.Descriptor.DstPath, os.O_RDONLY, 0666); err == nil { + defer org.Close() orgContent,_ = ioutil.ReadAll(org) - org.Close() } else { beeLogger.Log.Infof("file err %s", err) } } // Replace or create when content changes - output := []byte(buf) - if r.Option.EnableFormat && filepath.Ext(r.FlushFile) == ".go" { - // format code - var bts []byte - bts, err = format.Source([]byte(buf)) - if err != nil { - err = errors.New("format buf error " + err.Error()) - return - } - output = bts - } - - if FileContentChange(orgContent,output) { - err = r.write(r.FlushFile, output) + if len(orgContent) == 0 || FileContentChange(string(orgContent),buf) { + err = r.write(r.FlushFile, buf) if err != nil { beeLogger.Log.Fatalf("Could not create file: %s", err) return diff --git a/internal/app/module/beegopro/util.go b/internal/app/module/beegopro/util.go index f6baee6..2cbfe23 100644 --- a/internal/app/module/beegopro/util.go +++ b/internal/app/module/beegopro/util.go @@ -11,12 +11,13 @@ import ( "os" "path" "path/filepath" + "regexp" "strings" "time" ) // write to file -func (c *RenderFile) write(filename string, buf []byte) (err error) { +func (c *RenderFile) write(filename string, buf string) (err error) { if utils.IsExist(filename) && !isNeedOverwrite(filename) { return } @@ -190,19 +191,34 @@ func getModelType(orm string) (inputType, goType, mysqlType, tag string) { return } -func FileContentChange(org,new []byte) bool { - if len(org) == 0 { - return true +func FileContentChange(org,new string) bool { + if org == "" { + return false } var orgContent,newContent string - for i, s := range strings.Split(string(org), "\n") { - if i > 1 { - orgContent += s + jump := false + // expect tab character and blank space and "import(***)" + reg := regexp.MustCompile("\\s+") + for i, s := range strings.Split(org, "\n") { + if s == "import (" { + jump = true + } + if jump && s == ")" { + jump = false + } + if i > 2 && !jump { + orgContent += reg.ReplaceAllString(s, "") } } - for i, s := range strings.Split(string(new), "\n") { - if i > 1 { - newContent += s + for i, s := range strings.Split(new, "\n") { + if s == "import (" { + jump = true + } + if jump && s == ")" { + jump = false + } + if i > 2 && !jump { + newContent += reg.ReplaceAllString(s, "") } } orgMd5 := md5.Sum([]byte(orgContent)) @@ -210,6 +226,5 @@ func FileContentChange(org,new []byte) bool { if orgMd5 != newMd5 { return true } - beeLogger.Log.Infof("File has no change in the content") return false } \ No newline at end of file From 19d0116825549ae8b360f2c6d7e76b0050ea4356 Mon Sep 17 00:00:00 2001 From: askuy Date: Mon, 27 Jul 2020 13:11:14 +0800 Subject: [PATCH 3/5] Revert "Backup only when content changes" This reverts commit f601e441f3be2695063fd335901ab4e20d2e0828. --- internal/app/module/beegopro/render.go | 26 ++++------------- internal/app/module/beegopro/util.go | 40 -------------------------- 2 files changed, 5 insertions(+), 61 deletions(-) diff --git a/internal/app/module/beegopro/render.go b/internal/app/module/beegopro/render.go index 64c52fc..f2e49c3 100644 --- a/internal/app/module/beegopro/render.go +++ b/internal/app/module/beegopro/render.go @@ -6,8 +6,6 @@ import ( "github.com/davecgh/go-spew/spew" "github.com/flosch/pongo2" "github.com/smartwalle/pongo2render" - "io/ioutil" - "os" "path" "path/filepath" ) @@ -116,24 +114,10 @@ func (r *RenderFile) Exec(name string) { beeLogger.Log.Fatalf("Could not create the %s render tmpl: %s", name, err) return } - _, err = os.Stat(r.Descriptor.DstPath) - var orgContent []byte - if err == nil { - if org, err := os.OpenFile(r.Descriptor.DstPath, os.O_RDONLY, 0666); err == nil { - defer org.Close() - orgContent,_ = ioutil.ReadAll(org) - } else { - beeLogger.Log.Infof("file err %s", err) - } - } - // Replace or create when content changes - if len(orgContent) == 0 || FileContentChange(string(orgContent),buf) { - err = r.write(r.FlushFile, buf) - if err != nil { - beeLogger.Log.Fatalf("Could not create file: %s", err) - return - } - beeLogger.Log.Infof("create file '%s' from %s", r.FlushFile, r.PackageName) + err = r.write(r.FlushFile, buf) + if err != nil { + beeLogger.Log.Fatalf("Could not create file: %s", err) + return } + beeLogger.Log.Infof("create file '%s' from %s", r.FlushFile, r.PackageName) } - diff --git a/internal/app/module/beegopro/util.go b/internal/app/module/beegopro/util.go index 2cbfe23..e1491bd 100644 --- a/internal/app/module/beegopro/util.go +++ b/internal/app/module/beegopro/util.go @@ -1,7 +1,6 @@ package beegopro import ( - "crypto/md5" "errors" "fmt" "github.com/beego/bee/internal/pkg/utils" @@ -11,7 +10,6 @@ import ( "os" "path" "path/filepath" - "regexp" "strings" "time" ) @@ -190,41 +188,3 @@ func getModelType(orm string) (inputType, goType, mysqlType, tag string) { } return } - -func FileContentChange(org,new string) bool { - if org == "" { - return false - } - var orgContent,newContent string - jump := false - // expect tab character and blank space and "import(***)" - reg := regexp.MustCompile("\\s+") - for i, s := range strings.Split(org, "\n") { - if s == "import (" { - jump = true - } - if jump && s == ")" { - jump = false - } - if i > 2 && !jump { - orgContent += reg.ReplaceAllString(s, "") - } - } - for i, s := range strings.Split(new, "\n") { - if s == "import (" { - jump = true - } - if jump && s == ")" { - jump = false - } - if i > 2 && !jump { - newContent += reg.ReplaceAllString(s, "") - } - } - orgMd5 := md5.Sum([]byte(orgContent)) - newMd5:= md5.Sum([]byte(newContent)) - if orgMd5 != newMd5 { - return true - } - return false -} \ No newline at end of file From 3e5f9cf213724ff4d573d38451a86bd07ea7a6ae Mon Sep 17 00:00:00 2001 From: askuy Date: Mon, 27 Jul 2020 13:11:14 +0800 Subject: [PATCH 4/5] Revert "Change bee version" This reverts commit e0ce20407c21fb7ba9f583e34539fe095b43d2c7. --- cmd/commands/version/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/commands/version/version.go b/cmd/commands/version/version.go index a1ce710..4eebd9f 100644 --- a/cmd/commands/version/version.go +++ b/cmd/commands/version/version.go @@ -57,7 +57,7 @@ Prints the current Bee, Beego and Go version alongside the platform information. } var outputFormat string -const version = "1.12.0" +const version = "1.11.0" func init() { fs := flag.NewFlagSet("version", flag.ContinueOnError) From 6a2f44720e8bc0a68bdaa194ef696e963a5dc811 Mon Sep 17 00:00:00 2001 From: askuy Date: Mon, 27 Jul 2020 13:11:14 +0800 Subject: [PATCH 5/5] Revert "bak file err" This reverts commit 0e6ce7dea0dacf982a8e39759a9633c0f22388b5. --- internal/app/module/beegopro/util.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/app/module/beegopro/util.go b/internal/app/module/beegopro/util.go index e1491bd..646ffb2 100644 --- a/internal/app/module/beegopro/util.go +++ b/internal/app/module/beegopro/util.go @@ -20,7 +20,7 @@ func (c *RenderFile) write(filename string, buf string) (err error) { return } - filePath := filepath.Dir(filename) + filePath := path.Dir(filename) err = createPath(filePath) if err != nil { err = errors.New("write create path " + err.Error()) @@ -37,7 +37,7 @@ func (c *RenderFile) write(filename string, buf string) (err error) { name := path.Base(filename) if utils.IsExist(filename) { - bakName := fmt.Sprintf("%s/%s.%s.bak", filePathBak, filepath.Base(name), time.Now().Format("2006.01.02.15.04.05")) + bakName := fmt.Sprintf("%s/%s.%s.bak", filePathBak, name, time.Now().Format("2006.01.02.15.04.05")) beeLogger.Log.Infof("bak file '%s'", bakName) if err := os.Rename(filename, bakName); err != nil { err = errors.New("file is bak error, path is " + bakName)