41 lines
645 B
Go
41 lines
645 B
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"os/signal"
|
|
|
|
"git.loyso.art/frx/flyio/internal/api"
|
|
|
|
maelstrom "github.com/jepsen-io/maelstrom/demo/go"
|
|
)
|
|
|
|
func main() {
|
|
ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt)
|
|
defer cancel()
|
|
|
|
err := app(ctx)
|
|
if err != nil {
|
|
log.Fatalf("running app: %v", err)
|
|
}
|
|
|
|
os.Exit(0)
|
|
}
|
|
|
|
func app(ctx context.Context,) error {
|
|
node := maelstrom.NewNode()
|
|
|
|
srv, err := api.NewServer(node)
|
|
if err != nil {
|
|
return fmt.Errorf("making new server: %w", err)
|
|
}
|
|
err = srv.Run()
|
|
if err != nil {
|
|
return fmt.Errorf("running server: %w", err)
|
|
}
|
|
|
|
return nil
|
|
}
|