package main import ( "flag" "fmt" "net/http" "strings" "github.com/fatih/color" "github.com/gin-gonic/gin" "github.com/rocboss/paopao-ce/internal" "github.com/rocboss/paopao-ce/internal/conf" "github.com/rocboss/paopao-ce/internal/routers" "github.com/rocboss/paopao-ce/pkg/util" ) var ( version, commitID, buildDate string noDefaultFeatures bool features suites ) type suites []string func (s *suites) String() string { return strings.Join(*s, ",") } func (s *suites) Set(value string) error { for _, item := range strings.Split(value, ",") { *s = append(*s, strings.TrimSpace(item)) } return nil } func init() { flagParse() conf.Initialize(features, noDefaultFeatures) internal.Initialize() } func flagParse() { flag.BoolVar(&noDefaultFeatures, "no-default-features", false, "whether use default features") flag.Var(&features, "features", "use special features") flag.Parse() } func main() { gin.SetMode(conf.ServerSetting.RunMode) router := routers.NewRouter() s := &http.Server{ Addr: conf.ServerSetting.HttpIp + ":" + conf.ServerSetting.HttpPort, Handler: router, ReadTimeout: conf.ServerSetting.ReadTimeout, WriteTimeout: conf.ServerSetting.WriteTimeout, MaxHeaderBytes: 1 << 20, } util.PrintHelloBanner(fmt.Sprintf("paopao %s (build:%s %s)", version, commitID, buildDate)) fmt.Fprintf(color.Output, "PaoPao service listen on %s\n", color.GreenString(fmt.Sprintf("http://%s:%s", conf.ServerSetting.HttpIp, conf.ServerSetting.HttpPort)), ) s.ListenAndServe() }