镜像自地址
https://github.com/tuna/tunasync.git
已同步 2025-12-06 06:26:46 +00:00
Implement mirror.success_exit_codes and global.dangerous_global_success_exit_codes
Signed-off-by: Harry Chen <i@harrychen.xyz>
这个提交包含在:
@@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
"slices"
|
||||
"strings"
|
||||
"sync"
|
||||
"syscall"
|
||||
@@ -171,9 +172,18 @@ func (c *cmdJob) Wait() error {
|
||||
return c.retErr
|
||||
default:
|
||||
err := c.cmd.Wait()
|
||||
c.retErr = err
|
||||
close(c.finished)
|
||||
return err
|
||||
if err != nil {
|
||||
code := err.(*exec.ExitError).ExitCode()
|
||||
allowedCodes := c.provider.GetSuccessExitCodes()
|
||||
if slices.Contains(allowedCodes, code) {
|
||||
// process exited with non-success status
|
||||
logger.Infof("Command %s exited with code %d: treated as success (allowed: %v)", c.cmd.Args, code, allowedCodes)
|
||||
} else {
|
||||
c.retErr = err
|
||||
}
|
||||
}
|
||||
return c.retErr
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户