package server // ___ ____ ___ ___ // \ \ / / | _ | __| \ \ / / || | __ || || _ | // \ \/ / |___ | |__ \ \/ / || |___ || ||___| // \ / | _ | _ | \ / || __ | || ||\\ // \/ |___ |___ | \/ || ____| || || \\ // Copyright (c) 2021 Piotr Biernat. https://pbiernat.dev. MIT License // Repo: https://git.pbiernat.dev/golang/vegvisir import ( "encoding/json" "io/ioutil" "os" "vegvisir/config" ) type Server struct { Config config.Config } func NewServer() Server { return Server{} } func (s *Server) LoadConfig(file string) error { if _, err := os.Stat(file); err != nil { return err } data, err := ioutil.ReadFile(file) if err != nil { return err } json.Unmarshal(data, &s.Config) return nil } // func Run(s *Server) { // s.StartListener() // log.Println("Server started successfully...") // Wait for an interrupt // c := make(chan os.Signal, 1) // signal.Notify(c, os.Interrupt, os.Kill) // <-c // log.Error("SIGKILL or SIGINT caught, shutting down...") // Attempt a graceful shutdown // ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) // defer cancel() // s.shutdownServers(ctx) // log.Error("all listeners shut down.") // }