From 56cd77ac112a5152cfc84ad59d9adb8444440eb8 Mon Sep 17 00:00:00 2001 From: xucong053 Date: Tue, 31 May 2022 13:09:32 +0800 Subject: [PATCH] fix: failed to build debugtalk.go without go.mod --- examples/demo-empty-project/proj.json | 4 ++-- examples/demo-with-go-plugin/proj.json | 4 ++-- examples/demo-with-py-plugin/proj.json | 4 ++-- examples/demo-without-plugin/proj.json | 4 ++-- hrp/build.go | 22 +++++++++++++++++----- 5 files changed, 25 insertions(+), 13 deletions(-) diff --git a/examples/demo-empty-project/proj.json b/examples/demo-empty-project/proj.json index 38a8dbce..89891403 100644 --- a/examples/demo-empty-project/proj.json +++ b/examples/demo-empty-project/proj.json @@ -1,6 +1,6 @@ { "project_name": "demo-empty-project", - "project_path": "/Users/debugtalk/MyProjects/HttpRunner-dev/httprunner/examples/demo-empty-project", - "create_time": "2022-05-29T13:24:31.960615+08:00", + "project_path": "/Users/xxxxx/go/src/github.com/httprunner/httprunner/examples/demo-empty-project", + "create_time": "2022-05-31T13:12:05.552655+08:00", "hrp_version": "v4.1.0" } \ No newline at end of file diff --git a/examples/demo-with-go-plugin/proj.json b/examples/demo-with-go-plugin/proj.json index ea8c1534..1d013463 100644 --- a/examples/demo-with-go-plugin/proj.json +++ b/examples/demo-with-go-plugin/proj.json @@ -1,6 +1,6 @@ { "project_name": "demo-with-go-plugin", - "project_path": "/Users/debugtalk/MyProjects/HttpRunner-dev/httprunner/examples/demo-with-go-plugin", - "create_time": "2022-05-29T13:24:29.431434+08:00", + "project_path": "/Users/xxxxx/go/src/github.com/httprunner/httprunner/examples/demo-with-go-plugin", + "create_time": "2022-05-31T13:12:04.150418+08:00", "hrp_version": "v4.1.0" } \ No newline at end of file diff --git a/examples/demo-with-py-plugin/proj.json b/examples/demo-with-py-plugin/proj.json index 847d146d..ccec7c84 100644 --- a/examples/demo-with-py-plugin/proj.json +++ b/examples/demo-with-py-plugin/proj.json @@ -1,6 +1,6 @@ { "project_name": "demo-with-py-plugin", - "project_path": "/Users/debugtalk/MyProjects/HttpRunner-dev/httprunner/examples/demo-with-py-plugin", - "create_time": "2022-05-29T13:24:29.566414+08:00", + "project_path": "/Users/xxxxx/go/src/github.com/httprunner/httprunner/examples/demo-with-py-plugin", + "create_time": "2022-05-31T13:12:04.292557+08:00", "hrp_version": "v4.1.0" } \ No newline at end of file diff --git a/examples/demo-without-plugin/proj.json b/examples/demo-without-plugin/proj.json index bd9b8d79..bf08ffc7 100644 --- a/examples/demo-without-plugin/proj.json +++ b/examples/demo-without-plugin/proj.json @@ -1,6 +1,6 @@ { "project_name": "demo-without-plugin", - "project_path": "/Users/debugtalk/MyProjects/HttpRunner-dev/httprunner/examples/demo-without-plugin", - "create_time": "2022-05-29T13:24:31.840718+08:00", + "project_path": "/Users/xxxxx/go/src/github.com/httprunner/httprunner/examples/demo-without-plugin", + "create_time": "2022-05-31T13:12:05.424068+08:00", "hrp_version": "v4.1.0" } \ No newline at end of file diff --git a/hrp/build.go b/hrp/build.go index d77c6b3c..beeafd90 100644 --- a/hrp/build.go +++ b/hrp/build.go @@ -12,10 +12,10 @@ import ( "strings" "text/template" - "github.com/httprunner/funplugin/shared" "github.com/pkg/errors" "github.com/rs/zerolog/log" + "github.com/httprunner/funplugin/shared" "github.com/httprunner/httprunner/v4/hrp/internal/builtin" "github.com/httprunner/httprunner/v4/hrp/internal/version" ) @@ -209,10 +209,22 @@ func buildGo(path string, output string) error { return err } - // download plugin dependency - // funplugin version should be locked - funplugin := fmt.Sprintf("github.com/httprunner/funplugin@%s", shared.Version) - if err := builtin.ExecCommandInDir(exec.Command("go", "get", funplugin), pluginDir); err != nil { + if !builtin.IsFilePathExists(filepath.Join(pluginDir, "go.mod")) { + // create go mod + if err := builtin.ExecCommandInDir(exec.Command("go", "mod", "init", "main"), pluginDir); err != nil { + return err + } + + // download plugin dependency + // funplugin version should be locked + funplugin := fmt.Sprintf("github.com/httprunner/funplugin@%s", shared.Version) + if err := builtin.ExecCommandInDir(exec.Command("go", "get", funplugin), pluginDir); err != nil { + return err + } + } + + // add missing and remove unused modules + if err := builtin.ExecCommandInDir(exec.Command("go", "mod", "tidy"), pluginDir); err != nil { return err }