From 357c382d9606f6730121329fe776efb07a608d5b Mon Sep 17 00:00:00 2001 From: Steve Date: Mon, 13 Jul 2020 09:39:57 -0700 Subject: [PATCH 1/4] Version compatible Check Increase version compatibility to 1.0 - 1.9 --- model/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/version.go b/model/version.go index 60162858..1951790d 100644 --- a/model/version.go +++ b/model/version.go @@ -21,7 +21,7 @@ type Version struct { var frameworkCompatibleRangeList = [][]string{ {"0.0.0", "0.20.0"}, // minimum Revel version to use with this version of the tool {"0.19.99", "0.30.0"}, // Compatible with Framework V 0.19.99 - 0.30.0 - {"1.0.0", "1.1.0"}, // Compatible with Framework V 1.0 - 1.1 + {"1.0.0", "1.9.0"}, // Compatible with Framework V 1.0 - 1.9 } // Parses a version like v1.2.3a or 1.2 From 2e2f22ad7d9cfaf881cfc7f6786592141d163e6a Mon Sep 17 00:00:00 2001 From: Steve Date: Mon, 13 Jul 2020 09:40:56 -0700 Subject: [PATCH 2/4] remove go 1.12 test --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 530a0513..606fdb8c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ language: go go: - - "1.12.x" - "1.13.x" - "1.14.x" - "tip" From ebc9c73ba0099fdbf18ed9223088eedcc81b7f23 Mon Sep 17 00:00:00 2001 From: "notzippy@gmail.com" Date: Mon, 13 Jul 2020 22:35:22 -0700 Subject: [PATCH 3/4] Modified run command so launching command would be properly treated --- harness/app.go | 3 ++- revel/run.go | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/harness/app.go b/harness/app.go index d3abc264..24ab4ee2 100644 --- a/harness/app.go +++ b/harness/app.go @@ -93,7 +93,8 @@ func (cmd AppCmd) Start(c *model.CommandConfig) error { } // Run the app server inline. Never returns. -func (cmd AppCmd) Run() { +func (cmd AppCmd) Run(c *model.CommandConfig) { + utils.CmdInit(cmd.Cmd, !c.Vendored, c.AppPath) utils.Logger.Info("Exec app:", "path", cmd.Path, "args", cmd.Args) if err := cmd.Cmd.Run(); err != nil { utils.Logger.Fatal("Error running:", "error", err) diff --git a/revel/run.go b/revel/run.go index 93f22e6e..b04f9f67 100644 --- a/revel/run.go +++ b/revel/run.go @@ -162,6 +162,6 @@ func runApp(c *model.CommandConfig) (err error) { if c.HistoricMode { runMode = revel_path.RunMode } - app.Cmd(runMode).Run() + app.Cmd(runMode).Run(c) return } From c7f4307a5daf1297e7ec14cb091f8a08de4806ad Mon Sep 17 00:00:00 2001 From: "notzippy@gmail.com" Date: Tue, 14 Jul 2020 12:45:10 -0700 Subject: [PATCH 4/4] Changed the local code walker to include all go files in the base path, and not just the app path --- harness/build.go | 2 +- parser2/source_processor.go | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/harness/build.go b/harness/build.go index f3a45de6..7f23716e 100644 --- a/harness/build.go +++ b/harness/build.go @@ -458,7 +458,7 @@ func newCompileError(paths *model.RevelContainer, output []byte) *utils.SourceEr return compileError } -// RevelMainTemplate template for app/tmp/main.go +// RevelMainTemplate template for app/tmp/run/run.go const RevelRunTemplate = `// GENERATED CODE - DO NOT EDIT // This file is the run file for Revel. // It registers all the controllers and provides details for the Revel server engine to diff --git a/parser2/source_processor.go b/parser2/source_processor.go index 00ef0f4f..a665c6ae 100644 --- a/parser2/source_processor.go +++ b/parser2/source_processor.go @@ -12,7 +12,6 @@ import ( "go/ast" "go/token" "go/scanner" - ) type ( @@ -111,9 +110,8 @@ func (s *SourceProcessor) addPackages() (err error) { s.packageList, err = packages.Load(config, allPackages...) s.log.Info("Loaded modules ", "len results", len(s.packageList), "error", err) - // Now process the files in the aap source folder s.revelContainer.ImportPath + "/...", - err = utils.Walk(s.revelContainer.AppPath, s.processPath) + err = utils.Walk(s.revelContainer.BasePath, s.processPath) s.log.Info("Loaded apps and modules ", "len results", len(s.packageList), "error", err) return } @@ -136,8 +134,10 @@ func (s *SourceProcessor) processPath(path string, info os.FileInfo, err error) pkgImportPath := s.revelContainer.ImportPath appPath := s.revelContainer.BasePath if appPath != path { - pkgImportPath = s.revelContainer.ImportPath + "/" + filepath.ToSlash(path[len(appPath)+1:]) + pkgImportPath = s.revelContainer.ImportPath + "/" + filepath.ToSlash(path[len(appPath) + 1:]) } + s.log.Info("Processing source package folder", "package", pkgImportPath, "path", path) + // Parse files within the path. var pkgMap map[string]*ast.Package fset := token.NewFileSet() @@ -173,6 +173,7 @@ func (s *SourceProcessor) processPath(path string, info os.FileInfo, err error) ast.Print(nil, err) s.log.Fatal("Failed to parse dir", "error", err) } + // Skip "main" packages. delete(pkgMap, "main") @@ -180,7 +181,7 @@ func (s *SourceProcessor) processPath(path string, info os.FileInfo, err error) // These cannot be included in source code that is not generated specifically as a test for i := range pkgMap { if len(i) > 6 { - if string(i[len(i)-5:]) == "_test" { + if string(i[len(i) - 5:]) == "_test" { delete(pkgMap, i) } } @@ -194,7 +195,7 @@ func (s *SourceProcessor) processPath(path string, info os.FileInfo, err error) // There should be only one package in this directory. if len(pkgMap) > 1 { for i := range pkgMap { - println("Found package ", i) + println("Found duplicate packages in single directory ", i) } utils.Logger.Fatal("Most unexpected! Multiple packages in a single directory:", "packages", pkgMap) } @@ -205,10 +206,10 @@ func (s *SourceProcessor) processPath(path string, info os.FileInfo, err error) p.Fset = fset for _, pkg := range pkgMap { p.Name = pkg.Name - s.log.Info("Found package","pkg.Name", pkg.Name,"p.Name", p.PkgPath) - for filename,astFile := range pkg.Files { - p.Syntax = append(p.Syntax,astFile) - p.GoFiles = append(p.GoFiles,filename) + s.log.Info("Found package", "pkg.Name", pkg.Name, "p.Name", p.PkgPath) + for filename, astFile := range pkg.Files { + p.Syntax = append(p.Syntax, astFile) + p.GoFiles = append(p.GoFiles, filename) } } s.packageList = append(s.packageList, p)