github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/cmd/state-exec/comm.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "net" 6 7 "github.com/ActiveState/cli/internal/svcctl/svcmsg" 8 ) 9 10 const ( 11 network = "unix" 12 msgWidth = 1024 13 ) 14 15 func sendMsgToService(sockPath string, msg svcmsg.Messager) error { 16 conn, err := net.Dial(network, sockPath) 17 if err != nil { 18 return fmt.Errorf("dial failed: %w", err) 19 } 20 defer conn.Close() 21 22 _, err = conn.Write([]byte(msg.SvcMsg())) 23 if err != nil { 24 return fmt.Errorf("write to connection failed: %w", err) 25 } 26 27 buf := make([]byte, msgWidth) 28 _, err = conn.Read(buf) 29 if err != nil { 30 return fmt.Errorf("read from connection failed (buffer: %q): %w", string(buf), err) 31 } 32 33 return nil 34 }