- isTTY := term.IsTerminal(int(os.Stdout.Fd()))
-
- done := make(chan bool)
- // Collect events from all hosts and print them
- events := make(chan Event)
- go func() {
- var failed bool
- for {
- x := <-events
- if x.Host == nil {
- break
- }
- logEvent(x, cfg.LogLevel, isTTY, &failed)
- }
- done <- failed
- }()
+ isTTY := term.IsTerminal(int(os.Stdout.Fd())) &&
+ term.IsTerminal(int(os.Stderr.Fd()))
+
+ loop := &frontend.Loop{
+ DebugConn: cfg.LogLevel >= safcm.LogDebug3,
+ LogEventFunc: func(x frontend.Event, failed *bool) {
+ logEvent(x, cfg.LogLevel, isTTY, failed)
+ },
+ SyncHostFunc: func(conn *rpc.Conn, host frontend.Host) error {
+ return host.(*Sync).Host(conn)
+ },
+ }