package main

import (
	"context"
	"flag"
	"net/http"
	"time"

	"code.hackerspace.pl/hscloud/go/mirko"
	"github.com/golang/glog"
)

var (
	flagListen = "127.0.0.1:8080"
)

func main() {
	flag.StringVar(&flagListen, "pub_listen", flagListen, "Address to listen on for HTTP traffic")
	flag.Parse()

	m := mirko.New()
	if err := m.Listen(); err != nil {
		glog.Exitf("Listen(): %v", err)
	}

	if err := m.Serve(); err != nil {
		glog.Exitf("Serve(): %v", err)
	}

	mux := http.NewServeMux()
	// TODO(q3k): implement admission controller
	srv := &http.Server{Addr: flagListen, Handler: mux}

	glog.Infof("Listening on %q...", flagListen)
	go func() {
		if err := srv.ListenAndServe(); err != nil {
			glog.Error(err)
		}
	}()

	<-m.Done()
	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
	defer cancel()
	srv.Shutdown(ctx)
}
