aboutsummaryrefslogtreecommitdiffstats
path: root/modules/git/repo_attribute.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/git/repo_attribute.go')
-rw-r--r--modules/git/repo_attribute.go98
1 files changed, 0 insertions, 98 deletions
diff --git a/modules/git/repo_attribute.go b/modules/git/repo_attribute.go
index d3a3dc8c83..404d9e502c 100644
--- a/modules/git/repo_attribute.go
+++ b/modules/git/repo_attribute.go
@@ -9,8 +9,6 @@ import (
"fmt"
"io"
"os"
- "strconv"
- "strings"
"code.gitea.io/gitea/modules/log"
)
@@ -288,102 +286,6 @@ func (wr *nulSeparatedAttributeWriter) Close() error {
return nil
}
-type lineSeparatedAttributeWriter struct {
- tmp []byte
- attributes chan attributeTriple
- closed chan struct{}
-}
-
-func (wr *lineSeparatedAttributeWriter) Write(p []byte) (n int, err error) {
- l := len(p)
-
- nlIdx := bytes.IndexByte(p, '\n')
- for nlIdx >= 0 {
- wr.tmp = append(wr.tmp, p[:nlIdx]...)
-
- if len(wr.tmp) == 0 {
- // This should not happen
- if len(p) > nlIdx+1 {
- wr.tmp = wr.tmp[:0]
- p = p[nlIdx+1:]
- nlIdx = bytes.IndexByte(p, '\n')
- continue
- } else {
- return l, nil
- }
- }
-
- working := attributeTriple{}
- if wr.tmp[0] == '"' {
- sb := new(strings.Builder)
- remaining := string(wr.tmp[1:])
- for len(remaining) > 0 {
- rn, _, tail, err := strconv.UnquoteChar(remaining, '"')
- if err != nil {
- if len(remaining) > 2 && remaining[0] == '"' && remaining[1] == ':' && remaining[2] == ' ' {
- working.Filename = sb.String()
- wr.tmp = []byte(remaining[3:])
- break
- }
- return l, fmt.Errorf("unexpected tail %s", remaining)
- }
- _, _ = sb.WriteRune(rn)
- remaining = tail
- }
- } else {
- idx := bytes.IndexByte(wr.tmp, ':')
- if idx < 0 {
- return l, fmt.Errorf("unexpected input %s", string(wr.tmp))
- }
- working.Filename = string(wr.tmp[:idx])
- if len(wr.tmp) < idx+2 {
- return l, fmt.Errorf("unexpected input %s", string(wr.tmp))
- }
- wr.tmp = wr.tmp[idx+2:]
- }
-
- idx := bytes.IndexByte(wr.tmp, ':')
- if idx < 0 {
- return l, fmt.Errorf("unexpected input %s", string(wr.tmp))
- }
-
- working.Attribute = string(wr.tmp[:idx])
- if len(wr.tmp) < idx+2 {
- return l, fmt.Errorf("unexpected input %s", string(wr.tmp))
- }
-
- working.Value = string(wr.tmp[idx+2:])
-
- wr.attributes <- working
- wr.tmp = wr.tmp[:0]
- if len(p) > nlIdx+1 {
- p = p[nlIdx+1:]
- nlIdx = bytes.IndexByte(p, '\n')
- continue
- } else {
- return l, nil
- }
- }
-
- wr.tmp = append(wr.tmp, p...)
- return l, nil
-}
-
-func (wr *lineSeparatedAttributeWriter) ReadAttribute() <-chan attributeTriple {
- return wr.attributes
-}
-
-func (wr *lineSeparatedAttributeWriter) Close() error {
- select {
- case <-wr.closed:
- return nil
- default:
- }
- close(wr.attributes)
- close(wr.closed)
- return nil
-}
-
// Create a check attribute reader for the current repository and provided commit ID
func (repo *Repository) CheckAttributeReader(commitID string) (*CheckAttributeReader, context.CancelFunc) {
indexFilename, worktree, deleteTemporaryFile, err := repo.ReadTreeToTemporaryIndex(commitID)