kaspad/cmd/jsonrpcifyer/jsonrpcifyer.go

49 lines
768 B
Go

package main
import (
"github.com/daglabs/btcd/signal"
"log"
"os"
"runtime/debug"
)
func main() {
defer handlePanic()
cfg, err := parseConfig()
if err != nil {
log.Printf("error parsing command-line arguments: %s", err)
os.Exit(1)
}
server, err := newServer(cfg)
if err != nil {
log.Panicf("couldn't create server: %s", err)
}
defer func() {
err := server.stop()
if err != nil {
log.Panicf("couldn't stop server: %s", err)
}
}()
go func() {
err = server.start()
if err != nil {
log.Panicf("server error: %s", err)
}
}()
interrupt := signal.InterruptListener()
<-interrupt
}
func handlePanic() {
err := recover()
if err != nil {
log.Printf("Fatal error: %s", err)
log.Printf("Stack trace: %s", debug.Stack())
}
}