]> git.giacomolli.uk - onechat/blob - socket.go
Move whatsapp_send to its own file
[onechat] / socket.go
1 package main
2
3 import (
4         "fmt"
5 )
6
7 const (
8         // socketFileName is the Unix socket of the daemon in the data
9         // directory.
10         socketFileName = "onechat.sock"
11
12         // socketRequestBytes is the most bytes of one request line of a client.
13         socketRequestBytes = 16 << 20
14
15         // socketPathBytes is the longest path of a Unix socket on Linux.
16         socketPathBytes = 107
17
18         // terminalSource is the source of the user messages from the clients of
19         // the socket.
20         terminalSource = "terminal"
21 )
22
23 // checkSocketPath makes sure that path fits in the address of a Unix socket.
24 func checkSocketPath(path string) error {
25         if len(path) > socketPathBytes {
26                 return fmt.Errorf("socket path %s is longer than %d bytes: set ONECHAT_DIR to a shorter path", path, socketPathBytes)
27         }
28
29         return nil
30 }
31
32 // SocketRequest is one line from a client: "send" with the text of a user
33 // message, "interrupt", "stop" with the name of a subagent in Text, or
34 // "whatsapp" with the text after /whatsapp of a WhatsApp command.
35 type SocketRequest struct {
36         Type string `json:"type"`
37         Text string `json:"text,omitempty"`
38 }