46 lines · 1.2 KB · Go
RawDownload
// Copyright 2024 The Gitea Authors. All rights reserved.// SPDX-License-Identifier: MIT package git import (	"bufio"	"context") type Batch struct {	cancel context.CancelFunc	Reader *bufio.Reader	Writer WriteCloserError} func (repo *Repository) NewBatch(ctx context.Context) (*Batch, error) {	// Now because of some insanity with git cat-file not immediately failing if not run in a valid git directory we need to run git rev-parse first!	if err := ensureValidGitRepository(ctx, repo.Path); err != nil {		return nil, err	} 	var batch Batch	batch.Writer, batch.Reader, batch.cancel = catFileBatch(ctx, repo.Path)	return &batch, nil} func (repo *Repository) NewBatchCheck(ctx context.Context) (*Batch, error) {	// Now because of some insanity with git cat-file not immediately failing if not run in a valid git directory we need to run git rev-parse first!	if err := ensureValidGitRepository(ctx, repo.Path); err != nil {		return nil, err	} 	var check Batch	check.Writer, check.Reader, check.cancel = catFileBatchCheck(ctx, repo.Path)	return &check, nil} func (b *Batch) Close() {	if b.cancel != nil {		b.cancel()		b.Reader = nil		b.Writer = nil		b.cancel = nil	}}