package main import ( "fmt" "github.com/dotcloud/docker/engine" "github.com/dotcloud/docker/pkg/beam" "net" "os" ) func main() { eng := engine.New() c, err := net.Dial("unix", "beam.sock") if err != nil { fmt.Fprintf(os.Stderr, "%v\n", err) return } defer c.Close() f, err := c.(*net.UnixConn).File() if err != nil { fmt.Fprintf(os.Stderr, "%v\n", err) return } child, err := beam.FileConn(f) if err != nil { fmt.Fprintf(os.Stderr, "%v\n", err) return } defer child.Close() sender := engine.NewSender(child) sender.Install(eng) cmd := eng.Job(os.Args[1], os.Args[2:]...) cmd.Stdout.Add(os.Stdout) cmd.Stderr.Add(os.Stderr) if err := cmd.Run(); err != nil { fmt.Fprintf(os.Stderr, "%v\n", err) os.Exit(1) } }