diff options
| author | bt <bt@rctt.net> | 2026-03-14 23:11:15 +0100 |
|---|---|---|
| committer | bt <bt@rctt.net> | 2026-03-18 16:21:58 +0100 |
| commit | 54ddec67c477a6fd73b0f623258c0849ba695b88 (patch) | |
| tree | 3a34b67e62b8788f0611abc4f9f8cfe7954aae46 /cmd/daemon | |
| parent | 8932846aa4d29d59fd208f40bbfd44d1bb9cf1ff (diff) | |
| download | solec-54ddec67c477a6fd73b0f623258c0849ba695b88.tar.gz solec-54ddec67c477a6fd73b0f623258c0849ba695b88.zip | |
Basic server implementation
Diffstat (limited to 'cmd/daemon')
| -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) { + +} |
