mirror of
https://github.com/go-gitea/gitea
synced 2026-02-03 10:00:37 +00:00
Refactor git command stdio pipe (#36393)
And remove the incorrect `ensureValidGitRepository`
This commit is contained in:
@@ -5,6 +5,7 @@ package gitcmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
"code.gitea.io/gitea/modules/util"
|
||||
)
|
||||
@@ -18,3 +19,30 @@ func ConcatenateError(err error, stderr string) error {
|
||||
errMsg := fmt.Sprintf("%s - %s", err.Error(), stderr)
|
||||
return util.ErrorWrap(&runStdError{err: err, stderr: stderr, errMsg: errMsg}, "%s", errMsg)
|
||||
}
|
||||
|
||||
func safeClosePtrCloser[T *io.ReadCloser | *io.WriteCloser](c T) {
|
||||
switch v := any(c).(type) {
|
||||
case *io.ReadCloser:
|
||||
if v != nil && *v != nil {
|
||||
_ = (*v).Close()
|
||||
}
|
||||
case *io.WriteCloser:
|
||||
if v != nil && *v != nil {
|
||||
_ = (*v).Close()
|
||||
}
|
||||
default:
|
||||
panic("unsupported type")
|
||||
}
|
||||
}
|
||||
|
||||
func safeAssignPipe[T any](p *T, fn func() (T, error)) (bool, error) {
|
||||
if p == nil {
|
||||
return false, nil
|
||||
}
|
||||
v, err := fn()
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
*p = v
|
||||
return true, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user