func TestFoo(t *testing.T) { cmd := sh.Command{"foo"} _, err := cmd.Run() if err.Error() != "exit status 127" { t.Errorf("command(%s) should exit with 127, but is: %#v", cmd.Text(), err.Error()) } }
func TestRun(t *testing.T) { cmd := sh.Command{"echo -n 12; echo 34"} out, _ := cmd.Run() if out != "1234" { t.Errorf("command(%s) should output 1234, but is: %#v", cmd.Text(), out) } }
func RunPods(file string) (RunOutput, error) { var out RunOutput p, err := config.Pods(file) if err != nil { return out, err } script, err := MakeCmd(p) if err != nil { return out, err } cmd := sh.Command{script} fmt.Println(file) fmt.Println(script) fmt.Println("=============================") out = RunOutput{ Pid: p.Id, Pods: file, ContainerId: cmd.Ok(), // ContainerId: cmd.Mock()[0], } return out, nil }
func TestLines(t *testing.T) { cmd := sh.Command{"echo 12; echo 34"} out, _ := cmd.Lines() if len(out) != 2 { t.Errorf("command(%s) should output 2 line, but is: %#v", cmd.Text(), out) } }
func gitDescribe(dir string) (string, error) { os.Chdir(dir) script := "git describe" cmd := sh.Command{script} out, err := cmd.Run() return out, err }
func InspectRunning(cid string) string { script := fmt.Sprintf("docker inspect --format='{{.State.Running}}' %s", cid) cmd := sh.Command{script} ret := cmd.Ok() if ret == "true" { return "YES" } return "NO" }
func InspectPid(cid string) string { script := fmt.Sprintf("docker inspect --format='{{.Config.Labels.name}}' %s", cid) cmd := sh.Command{script} ret := cmd.Ok() if ret == "<no value>" { return "" } return ret }
func gitRev(dir string) (string, error) { os.Chdir(dir) script := "git rev-list --count --first-parent HEAD" cmd := sh.Command{script} out, err := cmd.Run() if err != nil { return "", err } return fmt.Sprintf("r%s", out), err }
func Ps() []PsOutput { cmd := sh.Command{"docker ps -a"} lines, _ := cmd.Lines() var reader = sh.NewReader(lines, PsOutput{}) var status []PsOutput status = make([]PsOutput, 0) for { var s PsOutput err := sh.Unmarshal(reader, &s) if err == io.EOF { break } if err != nil { panic(err) } status = append(status, s) } return status }
func TestRm(t *testing.T) { script := fmt.Sprintf("docker rm -f %s", busybox) cmd := sh.Command{script} t.Log(cmd.Ok()) }
package docker_test import ( "fmt" "testing" "github.com/lotreal/docker-pods/src/docker" "github.com/lotreal/docker-pods/src/sh" ) var busybox = (func() string { cmd := sh.Command{"docker run -d -it busybox sh"} return cmd.Ok()[0:12] })() func TestInit(t *testing.T) { t.Logf("%s", docker.Ps()) t.Logf("%s", busybox) } func TestIp(t *testing.T) { t.Log(docker.InspectIp(busybox)) } func TestPort(t *testing.T) { t.Log(docker.InspectPorts(busybox)) } func TestState(t *testing.T) { t.Log(docker.InspectPorts(busybox)) }
func InspectIp(cid string) string { script := fmt.Sprintf("docker inspect --format='{{.NetworkSettings.IPAddress}}' %s", cid) cmd := sh.Command{script} return cmd.Ok() }
func InspectPorts(cid string) string { script := fmt.Sprintf("docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' %s", cid) cmd := sh.Command{script} ret := cmd.Ok() return ret }