diff options
author | Runxi Yu <me@runxiyu.org> | 2025-04-06 08:35:58 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-04-06 08:35:58 +0800 |
commit | 7daf45b862b8f53ecabc969615437994edb49fe8 (patch) | |
tree | 1cc369adae791ecb5130d8d9cd2307ebb639cc34 /internal/git2c/cmd2.go | |
parent | Makefile: Silence that bunch of mkdir and cp (diff) | |
download | forge-0.1.31.tar.gz forge-0.1.31.tar.zst forge-0.1.31.zip |
git2c, git2d: Rename cmd1 and cmd2 descriptivelyv0.1.31
Diffstat (limited to 'internal/git2c/cmd2.go')
-rw-r--r-- | internal/git2c/cmd2.go | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/internal/git2c/cmd2.go b/internal/git2c/cmd2.go deleted file mode 100644 index 3bff332..0000000 --- a/internal/git2c/cmd2.go +++ /dev/null @@ -1,92 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-only -// SPDX-FileCopyrightText: Copyright (c) 2025 Runxi Yu <https://runxiyu.org> - -package git2c - -import ( - "errors" - "fmt" - "io" -) - -func (c *Client) Cmd2(repoPath, pathSpec string) ([]TreeEntry, string, error) { - if err := c.writer.WriteData([]byte(repoPath)); err != nil { - return nil, "", fmt.Errorf("sending repo path failed: %w", err) - } - if err := c.writer.WriteUint(2); err != nil { - return nil, "", fmt.Errorf("sending command failed: %w", err) - } - if err := c.writer.WriteData([]byte(pathSpec)); err != nil { - return nil, "", fmt.Errorf("sending path failed: %w", err) - } - - status, err := c.reader.ReadUint() - if err != nil { - return nil, "", fmt.Errorf("reading status failed: %w", err) - } - - switch status { - case 0: - kind, err := c.reader.ReadUint() - if err != nil { - return nil, "", fmt.Errorf("reading object kind failed: %w", err) - } - - switch kind { - case 1: - // Tree - count, err := c.reader.ReadUint() - if err != nil { - return nil, "", fmt.Errorf("reading entry count failed: %w", err) - } - - var files []TreeEntry - for range count { - typeCode, err := c.reader.ReadUint() - if err != nil { - return nil, "", fmt.Errorf("error reading entry type: %w", err) - } - mode, err := c.reader.ReadUint() - if err != nil { - return nil, "", fmt.Errorf("error reading entry mode: %w", err) - } - size, err := c.reader.ReadUint() - if err != nil { - return nil, "", fmt.Errorf("error reading entry size: %w", err) - } - name, err := c.reader.ReadData() - if err != nil { - return nil, "", fmt.Errorf("error reading entry name: %w", err) - } - - files = append(files, TreeEntry{ - Name: string(name), - Mode: fmt.Sprintf("%06o", mode), - Size: size, - IsFile: typeCode == 2, - IsSubtree: typeCode == 1, - }) - } - - return files, "", nil - - case 2: - // Blob - content, err := c.reader.ReadData() - if err != nil && !errors.Is(err, io.EOF) { - return nil, "", fmt.Errorf("error reading file content: %w", err) - } - - return nil, string(content), nil - - default: - return nil, "", fmt.Errorf("unknown kind: %d", kind) - } - - case 3: - return nil, "", fmt.Errorf("path not found: %s", pathSpec) - - default: - return nil, "", fmt.Errorf("unknown status code: %d", status) - } -} |