package main import ( "context" "log" "net" "net/http" "os" "os/signal" "strconv" "syscall" "test3k/auth/internal/config" server "test3k/auth/internal/transport/rest" ) func main() { config := config.NewConfig() ctx, _ := context.WithCancel(context.Background()) s := server.NewServer(ctx, config) // signalChannel := make(chan os.Signal, 1) signal.Notify(signalChannel, syscall.SIGINT) signal.Notify(signalChannel, syscall.SIGTERM) defer stop(signalChannel, s) // Запуск сервера go start(ctx, config, s) // for { select { case <-signalChannel: return case <-ctx.Done(): return } } } // Остановка сервера func stop(signalChannel chan os.Signal, s *server.AuthServer) { defer s.GracefulStop() defer signal.Stop(signalChannel) log.Println("authServer stopping ...") } // Запуск сервера func start(ctx context.Context, config *config.Config, s *server.AuthServer) { connStr := net.JoinHostPort("", strconv.Itoa(config.App.Port)) // log.Printf("authServer starting (%s)\n", connStr) // err := http.ListenAndServe(connStr, s.Router) // router if err != nil { log.Fatal("Failed starting server") } }