diff options
author | Runxi Yu <me@runxiyu.org> | 2025-08-12 11:01:07 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-09-15 15:19:12 +0800 |
commit | eb82fdb2dc0903e6125014abd64aceab42c8eb35 (patch) | |
tree | c07276ba1595c415ebc28943163d88f3e3180254 /forged/internal/ipc/git2c/perror.go | |
parent | Remove forge-specific functions from misc (diff) | |
download | forge-eb82fdb2dc0903e6125014abd64aceab42c8eb35.tar.gz forge-eb82fdb2dc0903e6125014abd64aceab42c8eb35.tar.zst forge-eb82fdb2dc0903e6125014abd64aceab42c8eb35.zip |
Diffstat (limited to 'forged/internal/ipc/git2c/perror.go')
-rw-r--r-- | forged/internal/ipc/git2c/perror.go | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/forged/internal/ipc/git2c/perror.go b/forged/internal/ipc/git2c/perror.go new file mode 100644 index 0000000..4be2a07 --- /dev/null +++ b/forged/internal/ipc/git2c/perror.go @@ -0,0 +1,87 @@ +// SPDX-License-Identifier: AGPL-3.0-only +// SPDX-FileCopyrightText: Copyright (c) 2025 Runxi Yu <https://runxiyu.org> + +// TODO: Make the C part report detailed error messages too + +package git2c + +import "errors" + +var ( + ErrUnknown = errors.New("git2c: unknown error") + ErrPath = errors.New("git2c: get tree entry by path failed") + ErrRevparse = errors.New("git2c: revparse failed") + ErrReadme = errors.New("git2c: no readme") + ErrBlobExpected = errors.New("git2c: blob expected") + ErrEntryToObject = errors.New("git2c: tree entry to object conversion failed") + ErrBlobRawContent = errors.New("git2c: get blob raw content failed") + ErrRevwalk = errors.New("git2c: revwalk failed") + ErrRevwalkPushHead = errors.New("git2c: revwalk push head failed") + ErrBareProto = errors.New("git2c: bare protocol error") + ErrRefResolve = errors.New("git2c: ref resolve failed") + ErrBranches = errors.New("git2c: list branches failed") + ErrCommitLookup = errors.New("git2c: commit lookup failed") + ErrDiff = errors.New("git2c: diff failed") + ErrMergeBaseNone = errors.New("git2c: no merge base found") + ErrMergeBase = errors.New("git2c: merge base failed") + ErrCommitCreate = errors.New("git2c: commit create failed") + ErrUpdateRef = errors.New("git2c: update ref failed") + ErrCommitTree = errors.New("git2c: commit tree lookup failed") + ErrInitRepoCreate = errors.New("git2c: init repo: create failed") + ErrInitRepoConfig = errors.New("git2c: init repo: open config failed") + ErrInitRepoSetHooksPath = errors.New("git2c: init repo: set core.hooksPath failed") + ErrInitRepoSetAdvertisePushOptions = errors.New("git2c: init repo: set receive.advertisePushOptions failed") + ErrInitRepoMkdir = errors.New("git2c: init repo: create directory failed") +) + +func Perror(errno uint64) error { + switch errno { + case 0: + return nil + case 3: + return ErrPath + case 4: + return ErrRevparse + case 5: + return ErrReadme + case 6: + return ErrBlobExpected + case 7: + return ErrEntryToObject + case 8: + return ErrBlobRawContent + case 9: + return ErrRevwalk + case 10: + return ErrRevwalkPushHead + case 11: + return ErrBareProto + case 12: + return ErrRefResolve + case 13: + return ErrBranches + case 14: + return ErrCommitLookup + case 15: + return ErrDiff + case 16: + return ErrMergeBaseNone + case 17: + return ErrMergeBase + case 18: + return ErrUpdateRef + case 19: + return ErrCommitCreate + case 20: + return ErrInitRepoCreate + case 21: + return ErrInitRepoConfig + case 22: + return ErrInitRepoSetHooksPath + case 23: + return ErrInitRepoSetAdvertisePushOptions + case 24: + return ErrInitRepoMkdir + } + return ErrUnknown +} |