]> ruderich.org/simon Gitweb - safcm/safcm.git/blobdiff - cmd/safcm/sync.go
safcm: move sync.sendRecv to frontend package
[safcm/safcm.git] / cmd / safcm / sync.go
index f1877cffde6b9b42b18955587192a19fda43127d..2f297c8dc69288aa4017f57d4e741562740784d9 100644 (file)
@@ -44,6 +44,7 @@ type Sync struct {
 
        isTTY bool
 
+       loop    *frontend.Loop
        logFunc func(level safcm.LogLevel, escaped bool, msg string)
 }
 
@@ -119,10 +120,11 @@ func MainSync(args []string) error {
                        allHosts:  allHosts,
                        allGroups: allGroups,
                        isTTY:     isTTY,
+                       loop:      loop,
                }
                s.logFunc = func(level safcm.LogLevel, escaped bool,
                        msg string) {
-                       loop.Log(s, level, escaped, msg)
+                       s.loop.Log(s, level, escaped, msg)
                }
                hosts = append(hosts, s)
        }
@@ -319,25 +321,3 @@ func (s *Sync) logDebugf(format string, a ...interface{}) {
 func (s *Sync) logVerbosef(format string, a ...interface{}) {
        s.log(safcm.LogVerbose, false, fmt.Sprintf(format, a...))
 }
-
-// sendRecv sends a message over conn and waits for the response. Any MsgLog
-// messages received before the final (non MsgLog) response are passed to
-// s.log.
-func (s *Sync) sendRecv(conn *rpc.Conn, msg safcm.Msg) (safcm.Msg, error) {
-       err := conn.Send(msg)
-       if err != nil {
-               return nil, err
-       }
-       for {
-               x, err := conn.Recv()
-               if err != nil {
-                       return nil, err
-               }
-               log, ok := x.(safcm.MsgLog)
-               if ok {
-                       s.log(log.Level, false, log.Text)
-                       continue
-               }
-               return x, nil
-       }
-}