fix: cmd.Exec 增加错误返回

This commit is contained in:
ssongliu 2023-03-13 10:04:53 +08:00 committed by ssongliu
parent 1502def9f5
commit aa608ff891
5 changed files with 42 additions and 9 deletions

View file

@ -2,15 +2,16 @@ package v1
import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
"strconv"
"github.com/1Panel-dev/1Panel/backend/app/api/v1/helper"
"github.com/1Panel-dev/1Panel/backend/constant"
"github.com/1Panel-dev/1Panel/backend/global"
"github.com/1Panel-dev/1Panel/backend/utils/files"
"github.com/gin-gonic/gin"
"io/ioutil"
"os"
"path/filepath"
"strconv"
)
func mergeChunks(fileName string, fileDir string, dstDir string, chunkCount int) error {
@ -73,7 +74,7 @@ func (b *BaseApi) UploadChunkFiles(c *gin.Context) {
filename := c.PostForm("filename")
fileDir := filepath.Join(global.CONF.System.DataDir, "upload", filename)
os.MkdirAll(fileDir, 0755)
_ = os.MkdirAll(fileDir, 0755)
filePath := filepath.Join(fileDir, filename)
emptyFile, err := os.Create(filePath)

View file

@ -9,6 +9,7 @@ import (
"github.com/1Panel-dev/1Panel/backend/app/api/v1/helper"
"github.com/1Panel-dev/1Panel/backend/constant"
"github.com/1Panel-dev/1Panel/backend/global"
"github.com/1Panel-dev/1Panel/backend/utils/cmd"
"github.com/1Panel-dev/1Panel/backend/utils/copier"
"github.com/1Panel-dev/1Panel/backend/utils/ssh"
"github.com/1Panel-dev/1Panel/backend/utils/terminal"
@ -155,6 +156,16 @@ func (b *BaseApi) ContainerWsSsh(c *gin.Context) {
return
}
defer wsConn.Close()
cmds := fmt.Sprintf("docker exec %s %s", containerID, command)
if len(user) != 0 {
cmds = fmt.Sprintf("docker exec -u %s %s %s", user, containerID, command)
}
stdout, err := cmd.Exec(cmds)
if wshandleError(wsConn, errors.WithMessage(err, stdout)) {
return
}
commands := fmt.Sprintf("docker exec -it %s %s", containerID, command)
if len(user) != 0 {
commands = fmt.Sprintf("docker exec -it -u %s %s %s", user, containerID, command)

View file

@ -850,7 +850,7 @@ func (u *SnapshotService) handleTar(sourceDir, targetDir, name, exclusionRules s
exStr += exclude
}
commands := fmt.Sprintf("tar -zcf %s %s -C %s .", targetDir+"/"+name, exStr, sourceDir)
commands := fmt.Sprintf("tar --warning=no-file-changed -zcf %s %s -C %s .", targetDir+"/"+name, exStr, sourceDir)
global.LOG.Debug(commands)
stdout, err := cmd.Exec(commands)
if err != nil {

View file

@ -13,7 +13,18 @@ func Exec(cmdStr string) (string, error) {
cmd.Stderr = &stderr
err := cmd.Run()
if err != nil {
return stderr.String(), err
errMsg := ""
if len(stderr.String()) != 0 {
errMsg = fmt.Sprintf("stderr: %s", stderr.String())
}
if len(stdout.String()) != 0 {
if len(errMsg) != 0 {
errMsg = fmt.Sprintf("%s; stdout: %s", errMsg, stdout.String())
} else {
errMsg = fmt.Sprintf("stdout: %s", stdout.String())
}
}
return errMsg, err
}
return stdout.String(), nil
}
@ -25,7 +36,18 @@ func Execf(cmdStr string, a ...interface{}) (string, error) {
cmd.Stderr = &stderr
err := cmd.Run()
if err != nil {
return stderr.String(), err
errMsg := ""
if len(stderr.String()) != 0 {
errMsg = fmt.Sprintf("stderr: %s", stderr.String())
}
if len(stdout.String()) != 0 {
if len(errMsg) != 0 {
errMsg = fmt.Sprintf("%s; stdout: %s", errMsg, stdout.String())
} else {
errMsg = fmt.Sprintf("stdout: %s", stdout.String())
}
}
return errMsg, err
}
return stdout.String(), nil
}

View file

@ -87,7 +87,6 @@ const acceptParams = async (params: DialogProps): Promise<void> => {
};
const onChangeCommand = async () => {
console.log('addqwd');
form.command = '';
};