github.com/docker/compose-on-kubernetes@v0.5.0/cmd/api-server/main.go (about)

     1  package main
     2  
     3  import (
     4  	"os"
     5  	"os/signal"
     6  	"syscall"
     7  
     8  	"github.com/docker/compose-on-kubernetes/cmd/api-server/cli"
     9  	log "github.com/sirupsen/logrus"
    10  	"github.com/spf13/cobra"
    11  	"github.com/spf13/pflag"
    12  	"k8s.io/component-base/logs"
    13  )
    14  
    15  func main() {
    16  	if err := start(func(*cobra.Command) error { return nil }); err != nil {
    17  		panic(err)
    18  	}
    19  }
    20  
    21  func start(init func(*cobra.Command) error) error {
    22  	logs.InitLogs()
    23  	defer logs.FlushLogs()
    24  	stop := make(chan struct{})
    25  	sigs := make(chan os.Signal, 1)
    26  	signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
    27  	go func() {
    28  		sig := <-sigs
    29  		log.Infof("Received signal: %v", sig)
    30  		close(stop)
    31  	}()
    32  	cmd := cli.NewCommandStartComposeServer(stop)
    33  	cmd.Flags().AddFlagSet(pflag.CommandLine)
    34  	if err := init(cmd); err != nil {
    35  		return err
    36  	}
    37  	return cmd.Execute()
    38  }