| 12345678910111213141516171819202122232425262728293031323334353637 |
- package helper
- import (
- "bytes"
- "errors"
- "fmt"
- "os/exec"
- "strings"
- )
- var ErrCommandEmpty = errors.New("command empty")
- func Execute(command string) ([]byte, []byte, error) {
- parts := strings.Split(command, " ")
- if len(parts) == 0 {
- return nil, nil, ErrCommandEmpty
- }
- var cmd *exec.Cmd
- if len(parts) == 1 {
- cmd = exec.Command(parts[0])
- } else {
- cmd = exec.Command(parts[0], parts[1:]...)
- }
- var stdout bytes.Buffer
- var stderr bytes.Buffer
- cmd.Stdout = &stdout
- cmd.Stderr = &stderr
- err := cmd.Run()
- if err != nil {
- return nil, nil, fmt.Errorf("execute failed: %w", err)
- }
- return stdout.Bytes(), stderr.Bytes(), err
- }
|