jack/main.go

59 lines
1.3 KiB
Go
Raw Permalink Normal View History

2020-05-29 22:31:56 +00:00
package main
import (
2020-08-14 16:28:10 +00:00
"flag"
2020-05-29 22:31:56 +00:00
"log"
"math/rand"
"net/http"
"time"
)
func main() {
2020-08-14 16:28:10 +00:00
var (
cribPath string
serverAddress string
serverPath string
telnetAddress string
sshAddress string
)
flag.StringVar(&cribPath, "crib", "", "path to crib application (terminal-based client)")
flag.StringVar(&serverAddress, "server", "", "host websocket server on provided address")
flag.StringVar(&serverPath, "path", "/crib", "host websocket server on provided path")
flag.StringVar(&telnetAddress, "telnet", "", "host telnet server on provided address")
flag.StringVar(&sshAddress, "ssh", "", "host SSH server on provided address")
flag.Parse()
if serverAddress == "" {
log.Fatal("failed to start: server listen +address must be specified with --server")
}
2020-05-29 22:31:56 +00:00
rand.Seed(time.Now().UTC().UnixNano())
2020-08-14 16:28:10 +00:00
// TODO debug
2020-05-29 22:31:56 +00:00
go func() {
log.Fatal(http.ListenAndServe(":8880", nil))
}()
2020-08-14 16:28:10 +00:00
if sshAddress != "" {
if cribPath == "" {
cribPath = "crib"
}
listenSSH(sshAddress, cribPath, serverAddress, serverPath)
}
2020-05-29 22:31:56 +00:00
log.Println("CribServer initialized")
cs := CribServer{}
cs.clientqueuealert = make(chan bool)
go cs.matchPlayers()
2020-08-14 16:28:10 +00:00
go cs.listenWebSocket(serverAddress, serverPath)
if telnetAddress != "" {
go cs.listenTelnet(telnetAddress)
}
2020-05-29 22:31:56 +00:00
// TODO
select {}
}