mosers
/
eaas-vde-proxy
Archiviert
1
0
Fork 0
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
Dieses Repo ist archiviert. Du kannst Dateien sehen und es klonen, kannst aber nicht pushen oder Issues/Pull-Requests öffnen.

51 Zeilen
791 B
Go

package cmd
import (
"bytes"
"io"
"log"
"os"
"os/exec"
)
type cmd struct {
fullCommand string
*exec.Cmd
bufOut bytes.Buffer
bufErr bytes.Buffer
}
func New(name string, args string) *cmd{
var bO, bE bytes.Buffer
c := cmd {
name + " " + args,
exec.Command(name, args),
bO,
bE,
}
c.Stdout = io.MultiWriter(os.Stdout, &c.bufOut)
c.Stderr = io.MultiWriter(os.Stderr, &c.bufErr)
return &c
}
func (c *cmd) Execute() {
err := c.Start()
if err != nil {
log.Printf("%s failed with %s\n", c.fullCommand, err)
}
}
func (c *cmd) GetOut() string {
return string(c.bufOut.Bytes())
}
func (c *cmd) GetErr() string {
return string(c.bufErr.Bytes())
}
func (c *cmd) WaitH() {
err := c.Wait()
if err != nil {
log.Printf("%s failed with %s\n", c.fullCommand, err)
}
}