diff options
author | zeripath <art27@cantab.net> | 2020-06-13 22:47:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-13 17:47:31 -0400 |
commit | ae3cfa844945f446b511dbcae358b3f5b930b3ce (patch) | |
tree | e980a77cd07dca7729369499a1d8bf25ac016485 /modules/process | |
parent | 48842ed1085c9186c40c1a07aa0887f70707fce4 (diff) | |
download | gitea-ae3cfa844945f446b511dbcae358b3f5b930b3ce.tar.gz gitea-ae3cfa844945f446b511dbcae358b3f5b930b3ce.zip |
Only write to global gitconfig if necessary (#11876)
* Only write to global gitconfig if necessary
Fix #11855
Signed-off-by: Andrew Thornton <art27@cantab.net>
* placate lint
Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'modules/process')
-rw-r--r-- | modules/process/manager.go | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/modules/process/manager.go b/modules/process/manager.go index af6ee9b81d..27ed1d4964 100644 --- a/modules/process/manager.go +++ b/modules/process/manager.go @@ -157,7 +157,14 @@ func (pm *Manager) ExecDirEnvStdIn(timeout time.Duration, dir, desc string, env pm.Remove(pid) if err != nil { - err = fmt.Errorf("exec(%d:%s) failed: %v(%v) stdout: %v stderr: %v", pid, desc, err, ctx.Err(), stdOut, stdErr) + err = &Error{ + PID: pid, + Description: desc, + Err: err, + CtxErr: ctx.Err(), + Stdout: stdOut.String(), + Stderr: stdErr.String(), + } } return stdOut.String(), stdErr.String(), err @@ -176,3 +183,22 @@ func (l processList) Less(i, j int) bool { func (l processList) Swap(i, j int) { l[i], l[j] = l[j], l[i] } + +// Error is a wrapped error describing the error results of Process Execution +type Error struct { + PID int64 + Description string + Err error + CtxErr error + Stdout string + Stderr string +} + +func (err *Error) Error() string { + return fmt.Sprintf("exec(%d:%s) failed: %v(%v) stdout: %s stderr: %s", err.PID, err.Description, err.Err, err.CtxErr, err.Stdout, err.Stderr) +} + +// Unwrap implements the unwrappable implicit interface for go1.13 Unwrap() +func (err *Error) Unwrap() error { + return err.Err +} |