You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
okapidemo/his/main.go

61 lines
1.1 KiB

package main
import (
"context"
"fmt"
"log"
"net/http"
"os"
"os/signal"
"sync"
)
var apiPort = "8083"
var apiAddr = "0.0.0.0:" + apiPort
var uiAddr = "0.0.0.0:8084"
var externalApiAddr = "https://localhost:" + apiPort
func main() {
stop := make(chan os.Signal, 1)
signal.Notify(stop, os.Interrupt)
wg := &sync.WaitGroup{}
if os.Getenv("EXT_ADDR") != "" {
externalApiAddr = "https://" + os.Getenv("EXT_ADDR") + ":" + apiPort
}
srv := NewServer(apiAddr, uiAddr)
srv.LoadData("./data/data.db")
wg.Add(1)
go func() {
if err := srv.ListenAndServeUI(); err != nil && err != http.ErrServerClosed {
panic(fmt.Errorf("err listenAndServe ui: %v", err))
}
}()
wg.Add(1)
go func() {
if err := srv.ListenAndServeAPI(); err != nil && err != http.ErrServerClosed {
panic(fmt.Errorf("err listenAndServe api: %v", err))
}
}()
<-stop
go func() {
log.Println("Shutdown api server...")
srv.ShutdownAPI(context.Background())
wg.Done()
log.Println("Server.shutdown...")
}()
go func() {
log.Println("Shutdown ui server...")
srv.ShutdownUI(context.Background())
wg.Done()
log.Println("Server.shutdown...")
}()
wg.Wait()
}