From d264e186c1f8a6ca996b855524df3989493c974f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20Schr=C3=B6ter?= Date: Sun, 13 Feb 2022 11:36:09 +0100 Subject: [PATCH] Added context MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Steffen Schröter --- modules/git/submodule.go | 15 +++++++-------- modules/git/submodule_test.go | 4 ++-- modules/repository/generate.go | 4 ++-- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/modules/git/submodule.go b/modules/git/submodule.go index 5bab36aa01..c4bbf0268b 100644 --- a/modules/git/submodule.go +++ b/modules/git/submodule.go @@ -7,6 +7,7 @@ package git import ( "bufio" + "context" "fmt" "io" "net" @@ -132,7 +133,7 @@ func (sf *SubModuleFile) RefID() string { } // GetSubmoduleCommits Returns a list of active submodules in the repository -func GetSubmoduleCommits(repoPath string) []SubModuleCommit { +func GetSubmoduleCommits(ctx context.Context, repoPath string) []SubModuleCommit { stdoutReader, stdoutWriter := io.Pipe() defer func() { _ = stdoutReader.Close() @@ -141,7 +142,7 @@ func GetSubmoduleCommits(repoPath string) []SubModuleCommit { go func() { stderrBuilder := &strings.Builder{} - err := NewCommand("config", "-f", ".gitmodules", "--list", "--name-only").RunInDirPipeline(repoPath, stdoutWriter, stderrBuilder) + err := NewCommand(ctx, "config", "-f", ".gitmodules", "--list", "--name-only").RunInDirPipeline(repoPath, stdoutWriter, stderrBuilder) if err != nil { _ = stdoutWriter.CloseWithError(ConcatenateError(err, stderrBuilder.String())) } else { @@ -154,7 +155,6 @@ func GetSubmoduleCommits(repoPath string) []SubModuleCommit { for { line, err := bufReader.ReadString('\n') - if err != nil { break } @@ -174,10 +174,9 @@ func GetSubmoduleCommits(repoPath string) []SubModuleCommit { continue } - commit, err := NewCommand("submodule", "status", name). - RunInDir(repoPath) - // If no commit was found for the module skip it + commit, err := NewCommand(ctx, "submodule", "status", name). + RunInDir(repoPath) if err != nil { log.Debug("Submodule %s skipped because it has no commit", name) continue @@ -208,9 +207,9 @@ func GetSubmoduleCommits(repoPath string) []SubModuleCommit { } // AddSubmoduleIndexes Adds the given submodules to the git index. Requires the .gitmodules file to be already present. -func AddSubmoduleIndexes(repoPath string, submodules []SubModuleCommit) error { +func AddSubmoduleIndexes(ctx context.Context, repoPath string, submodules []SubModuleCommit) error { for _, submodule := range submodules { - if stdout, err := NewCommand("update-index", "--add", "--cacheinfo", "160000", submodule.Commit, submodule.Name). + if stdout, err := NewCommand(ctx, "update-index", "--add", "--cacheinfo", "160000", submodule.Commit, submodule.Name). RunInDir(repoPath); err != nil { log.Error("Unable to add %s as submodule to repo %s: stdout %s\nError: %v", submodule.Name, repoPath, stdout, err) return err diff --git a/modules/git/submodule_test.go b/modules/git/submodule_test.go index ffe592d222..faadae1e84 100644 --- a/modules/git/submodule_test.go +++ b/modules/git/submodule_test.go @@ -46,11 +46,11 @@ func TestGetRefURL(t *testing.T) { func TestRepository_GetSubmoduleCommits(t *testing.T) { bareRepo1Path := filepath.Join(testReposDir, "repo4_submodules") - clonedPath, err := cloneRepo(bareRepo1Path, testReposDir, "repo4_TestRepository_GetSubmoduleCommits") + clonedPath, err := cloneRepo(bareRepo1Path, "repo4_TestRepository_GetSubmoduleCommits") assert.NoError(t, err) defer util.RemoveAll(clonedPath) - submodules := GetSubmoduleCommits(clonedPath) + submodules := GetSubmoduleCommits(DefaultContext, clonedPath) assert.EqualValues(t, len(submodules), 2) diff --git a/modules/repository/generate.go b/modules/repository/generate.go index 45c47eccb5..4dd8027c87 100644 --- a/modules/repository/generate.go +++ b/modules/repository/generate.go @@ -123,7 +123,7 @@ func generateRepoCommit(ctx context.Context, repo, templateRepo, generateRepo *r } // Get active submodules from the template - submodules := git.GetSubmoduleCommits(tmpDir) + submodules := git.GetSubmoduleCommits(ctx, tmpDir) if err := util.RemoveAll(path.Join(tmpDir, ".git")); err != nil { return fmt.Errorf("remove git dir: %v", err) @@ -187,7 +187,7 @@ func generateRepoCommit(ctx context.Context, repo, templateRepo, generateRepo *r return fmt.Errorf("git remote add: %v", err) } - if err := git.AddSubmoduleIndexes(tmpDir, submodules); err != nil { + if err := git.AddSubmoduleIndexes(ctx, tmpDir, submodules); err != nil { return fmt.Errorf("Failed to add submodules: %v", err) }