Files
teachat/main.go
2025-12-28 00:30:12 -07:00

48 lines
794 B
Go

package main
import (
"context"
"errors"
"log"
"os"
"os/signal"
"syscall"
"time"
"teachat/internal"
"github.com/charmbracelet/ssh"
)
const (
port = 23234
host = "0.0.0.0"
)
func main() {
internal.InitDB()
srv, err := internal.NewServer(host, port)
if err != nil {
log.Fatalln(err)
}
done := make(chan os.Signal, 1)
signal.Notify(done, os.Interrupt, syscall.SIGINT, syscall.SIGTERM)
log.Printf("Starting SSH server on %s:%d", host, port)
go func() {
if err = srv.ListenAndServe(); err != nil && !errors.Is(err, ssh.ErrServerClosed) {
log.Fatalln(err)
}
}()
<-done
log.Println("Stopping server...")
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
if err := srv.Shutdown(ctx); err != nil {
log.Fatalln(err)
}
}