consul/agent/hcp/testserver/main.go

49 lines
850 B
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package main
import (
"flag"
"fmt"
"log"
"net/http"
"os"
"os/signal"
"syscall"
"github.com/hashicorp/consul/agent/hcp"
"github.com/hashicorp/consul/agent/hcp/bootstrap"
)
var port int
func main() {
flag.IntVar(&port, "port", 9999, "port to listen on")
flag.Parse()
s := hcp.NewMockHCPServer()
s.AddEndpoint(bootstrap.TestEndpoint())
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
addr := fmt.Sprintf("127.0.0.1:%d", port)
srv := http.Server{
Addr: addr,
Handler: s,
}
log.Printf("Listening on %s\n", addr)
go func() {
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
log.Fatalf("listen: %s\n", err)
}
}()
<-sigs
log.Println("Shutting down HTTP server")
srv.Close()
}