diff --git a/internal/app/api/proc.go b/internal/app/api/proc.go index 6382bb2..4fc7c5d 100644 --- a/internal/app/api/proc.go +++ b/internal/app/api/proc.go @@ -16,7 +16,7 @@ func (p *procApi) CreateNewProcess(ctx *gin.Context, req model.Process) { index, err := repository.ProcessRepository.AddProcessConfig(req) errCheck(ctx, err != nil, err) req.Uuid = index - proc, err := logic.ProcessCtlLogic.RunNewProcess(req) + proc, err := logic.ProcessCtlLogic.NewProcess(req) errCheck(ctx, err != nil, err) logic.ProcessCtlLogic.AddProcess(req.Uuid, proc) rOk(ctx, "Operation successful!", gin.H{ diff --git a/internal/app/logic/process_logic.go b/internal/app/logic/process_logic.go index 2d7b8dd..05c3c30 100644 --- a/internal/app/logic/process_logic.go +++ b/internal/app/logic/process_logic.go @@ -207,24 +207,12 @@ func (p *processCtlLogic) UpdateProcessConfig(config model.Process) error { result.Config.cpuLimit = config.CpuLimit result.Config.AutoRestart = config.AutoRestart result.Config.compulsoryRestart = config.CompulsoryRestart - result.StartCommand = strings.Split(config.Cmd, " ") + result.StartCommand = strings.Fields(config.Cmd) result.WorkDir = config.Cwd result.Name = config.Name return nil } -func (p *processCtlLogic) RunNewProcess(config model.Process) (proc *ProcessBase, err error) { - switch config.TermType { - case constants.TERMINAL_STD: - proc, err = RunNewProcessStd(config) - case constants.TERMINAL_PTY: - proc, err = RunNewProcessPty(config) - default: - err = errors.New("终端类型错误") - } - return -} - func (p *processCtlLogic) NewProcess(config model.Process) (proc *ProcessBase, err error) { switch config.TermType { case constants.TERMINAL_STD: @@ -236,3 +224,12 @@ func (p *processCtlLogic) NewProcess(config model.Process) (proc *ProcessBase, e } return } + +func (p *processCtlLogic) RunNewProcess(config model.Process) (proc *ProcessBase, err error) { + proc, err = p.NewProcess(config) + if err != nil { + return + } + err = proc.Start() + return +} diff --git a/internal/app/logic/process_pty_linux.go b/internal/app/logic/process_pty_linux.go index 38d4658..9f43453 100644 --- a/internal/app/logic/process_pty_linux.go +++ b/internal/app/logic/process_pty_linux.go @@ -145,11 +145,3 @@ func NewProcessPty(pconfig model.Process) *ProcessBase { processPty.setProcessConfig(pconfig) return &p } - -func RunNewProcessPty(pconfig model.Process) (*ProcessBase, error) { - processPty := NewProcessPty(pconfig) - if err := processPty.Start(); err != nil { - return nil, err - } - return processPty, nil -} diff --git a/internal/app/logic/process_pty_windows.go b/internal/app/logic/process_pty_windows.go index 15107f1..a2379a9 100644 --- a/internal/app/logic/process_pty_windows.go +++ b/internal/app/logic/process_pty_windows.go @@ -147,11 +147,3 @@ func NewProcessPty(pconfig model.Process) *ProcessBase { processPty.setProcessConfig(pconfig) return &p } - -func RunNewProcessPty(pconfig model.Process) (*ProcessBase, error) { - processPty := NewProcessPty(pconfig) - if err := processPty.Start(); err != nil { - return nil, err - } - return processPty, nil -} diff --git a/internal/app/logic/process_std.go b/internal/app/logic/process_std.go index 99c1ca6..4c56435 100644 --- a/internal/app/logic/process_std.go +++ b/internal/app/logic/process_std.go @@ -145,11 +145,3 @@ func NewProcessStd(pconfig model.Process) *ProcessBase { processStd.setProcessConfig(pconfig) return &p } - -func RunNewProcessStd(pconfig model.Process) (*ProcessBase, error) { - processStd := NewProcessStd(pconfig) - if err := processStd.Start(); err != nil { - return nil, err - } - return processStd, nil -} diff --git a/utils/str.go b/utils/str.go index a63c741..391e074 100644 --- a/utils/str.go +++ b/utils/str.go @@ -83,3 +83,11 @@ func JsonStrToStruct[T any](str string) T { json.Unmarshal([]byte(str), &data) return data } + +func StructToJsonStr[T any](data T) string { + jsonStr, err := json.Marshal(data) + if err != nil { + return "" + } + return string(jsonStr) +}