diff options
Diffstat (limited to 'cmd/daemon/main.go')
| -rw-r--r-- | cmd/daemon/main.go | 58 |
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) { + +} |
