summaryrefslogtreecommitdiffstats
path: root/cmd/daemon/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/daemon/main.go')
-rw-r--r--cmd/daemon/main.go58
1 files changed, 36 insertions, 22 deletions
diff --git a/cmd/daemon/main.go b/cmd/daemon/main.go
index b55cc69..56b7c16 100644
--- a/cmd/daemon/main.go
+++ b/cmd/daemon/main.go
@@ -1,39 +1,53 @@
package main
import (
- "flag"
+ "bufio"
+ "fmt"
"log"
- "net"
+ "maps"
+ "os"
+ "slices"
+ "strings"
- "git.sr.ht/~rctt/solecd/core"
+ "git.sr.ht/~rctt/solec/server"
)
-var listenAddr string
+var (
+ cmds = map[string]func(args []string){
+ "ping": sendPing,
+ }
-func main() {
- flag.StringVar(&listenAddr, "a", "localhost:9999", "Listening address:port")
- flag.Parse()
+ serv = server.NewServer("localhost:9999")
+)
- log.Print("starting solec daemon mock")
- log.Fatal(listen())
-}
+func main() {
+ fmt.Println("SOLEC MOCK SERVER")
+ fmt.Println("Commands:", slices.Sorted(maps.Keys(cmds)))
-func listen() error {
- ln, err := net.Listen("tcp", listenAddr)
- if err != nil {
- return err
+ if err := serv.Start(); err != nil {
+ panic(err)
}
+ readCmds()
+}
- log.Print("server is listening on: ", listenAddr)
+func readCmds() {
+ sc := bufio.NewScanner(os.Stdin)
+ for sc.Scan() {
+ args := strings.Split(sc.Text(), " ")
- for {
- conn, err := ln.Accept()
- if err != nil {
- log.Print("cannot accept connection: ", err)
+ cmd, ok := cmds[args[0]]
+ if !ok {
+ fmt.Println("unknown command")
+ continue
}
- log.Print("received connection from: ", conn.RemoteAddr())
-
- go core.ReadConnection(conn)
+ cmd(args[1:])
+ }
+ if err := sc.Err(); err != nil {
+ log.Println(err)
}
}
+
+func sendPing(args []string) {
+
+}