Initial commit
This commit is contained in:
46
cmd/crockery/main.go
Normal file
46
cmd/crockery/main.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
"os"
|
||||
"os/signal"
|
||||
|
||||
"ur.gs/crockery/internal/services"
|
||||
"ur.gs/crockery/internal/store"
|
||||
)
|
||||
|
||||
func main() {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
|
||||
datastore, err := store.New(ctx, "crockery.db")
|
||||
if err != nil {
|
||||
log.Fatal("Couldn't open crockery.db:", err)
|
||||
}
|
||||
|
||||
srv, err := services.New(ctx, datastore)
|
||||
if err != nil {
|
||||
log.Fatal("Couldn't start services:", err)
|
||||
}
|
||||
|
||||
sig := make(chan os.Signal, 1)
|
||||
done := make(chan bool)
|
||||
|
||||
signal.Notify(sig, os.Interrupt)
|
||||
|
||||
go func() {
|
||||
s := <-sig
|
||||
log.Print("Got signal: ", s)
|
||||
cancel()
|
||||
}()
|
||||
|
||||
go func() {
|
||||
srv.Run()
|
||||
close(done)
|
||||
}()
|
||||
|
||||
<-done
|
||||
log.Println("All services finished, exiting")
|
||||
|
||||
os.Exit(0)
|
||||
}
|
Reference in New Issue
Block a user