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 }