]> ruderich.org/simon Gitweb - safcm/safcm.git/blobdiff - cmd/safcm-remote/main.go
Move implementation of cmd/safcm-remote/ to remote/
[safcm/safcm.git] / cmd / safcm-remote / main.go
index 9c58d3af8175c337aa60a2b47bc1383105cc0226..b6d784d827697deca168cd6d38cb7ce6f646a355 100644 (file)
@@ -1,4 +1,4 @@
-// Helper copied to the remote hosts to run commands and deploy configuration
+// Helper copied to the remote host to run commands and deploy configuration
 
 // Copyright (C) 2021  Simon Ruderich
 //
 package main
 
 import (
-       "fmt"
-       "log"
-       "os"
-
-       "ruderich.org/simon/safcm"
-       "ruderich.org/simon/safcm/cmd/safcm-remote/ainsl"
-       "ruderich.org/simon/safcm/cmd/safcm-remote/info"
-       "ruderich.org/simon/safcm/cmd/safcm-remote/run"
-       "ruderich.org/simon/safcm/cmd/safcm-remote/sync"
+       "ruderich.org/simon/safcm/remote"
 )
 
 func main() {
-       // Timestamps are added by `safcm`
-       log.SetFlags(0)
-
-       var err error
-       if len(os.Args) == 1 {
-               err = mainLoop()
-       } else if len(os.Args) >= 2 && os.Args[1] == "ainsl" {
-               err = ainsl.Main(os.Args)
-       } else {
-               log.Fatalf("usage: %[1]s\n"+
-                       "usage: %[1]s ainsl [options] <path> <line>",
-                       os.Args[0])
-       }
-
-       if err != nil {
-               log.Fatalf("%s: %v", os.Args[0], err)
-       }
-}
-
-func mainLoop() error {
-       conn := safcm.NewGobConn(os.Stdin, os.Stdout)
-
-       var logLevel safcm.LogLevel
-       logFunc := func(level safcm.LogLevel, format string, a ...interface{}) {
-               if logLevel >= level {
-                       conn.Send(safcm.MsgLog{
-                               Level: level,
-                               Text:  fmt.Sprintf(format, a...),
-                       })
-               }
-       }
-
-       var quitResp safcm.MsgQuitResp
-       for {
-               x, err := conn.Recv()
-               if err != nil {
-                       return err
-               }
-
-               var resp safcm.Msg
-               switch x := x.(type) {
-               case safcm.MsgInfoReq:
-                       logLevel = x.LogLevel // set log level globally
-                       resp = info.Handle(x, run.ExecRunner{}, logFunc)
-               case safcm.MsgSyncReq:
-                       resp = sync.Handle(x, run.ExecRunner{}, logFunc)
-               case safcm.MsgQuitReq:
-                       resp = quitResp
-               default:
-                       return fmt.Errorf("unsupported message %#v", x)
-               }
-
-               err = conn.Send(resp)
-               if err != nil {
-                       return err
-               }
-               if resp == quitResp {
-                       break
-               }
-       }
-       return nil
+       remote.Main()
 }