1
0
镜像自地址 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>
这个提交包含在:
Shengqi Chen
2025-02-28 14:43:51 +08:00
父节点 d2b3e731bf
当前提交 033aa60540
共有 4 个文件被更改,包括 53 次插入5 次删除

查看文件

@@ -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
}
}