diff options
author | Michael Muré <batolettre@gmail.com> | 2020-09-29 20:51:15 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-29 20:51:15 +0200 |
commit | 1204b66e0cc958c2ca3b328d25cbec347356a046 (patch) | |
tree | 852ba5a688eea6872b0885d23dc91342d09b468d /repository/tree_entry.go | |
parent | 9f3a56b1f34a8b4a7a75357986e967afc4b96611 (diff) | |
parent | 4055495c8ba983033459507f3032ca93c6ec006a (diff) | |
download | git-bug-1204b66e0cc958c2ca3b328d25cbec347356a046.tar.gz |
Merge pull request #412 from MichaelMure/gogit-repo
repository: go-git backed Repo
Diffstat (limited to 'repository/tree_entry.go')
-rw-r--r-- | repository/tree_entry.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/repository/tree_entry.go b/repository/tree_entry.go index 8b3de8e2..6c5ec1a5 100644 --- a/repository/tree_entry.go +++ b/repository/tree_entry.go @@ -1,6 +1,7 @@ package repository import ( + "bytes" "fmt" "strings" ) @@ -68,3 +69,34 @@ func ParseObjectType(mode, objType string) (ObjectType, error) { return Unknown, fmt.Errorf("Unknown git object type %s %s", mode, objType) } } + +func prepareTreeEntries(entries []TreeEntry) bytes.Buffer { + var buffer bytes.Buffer + + for _, entry := range entries { + buffer.WriteString(entry.Format()) + } + + return buffer +} + +func readTreeEntries(s string) ([]TreeEntry, error) { + split := strings.Split(strings.TrimSpace(s), "\n") + + casted := make([]TreeEntry, len(split)) + for i, line := range split { + if line == "" { + continue + } + + entry, err := ParseTreeEntry(line) + + if err != nil { + return nil, err + } + + casted[i] = entry + } + + return casted, nil +} |