options.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package options
  2. import (
  3. "dy-admin/pkg/comopts"
  4. "dy-admin/pkg/flagsets"
  5. "encoding/json"
  6. )
  7. type Options struct {
  8. GenericServerRunOptions *comopts.ServerRunOptions `json:"server" mapstructure:"server"`
  9. InsecureServing *comopts.InsecureServingOptions `json:"insecure" mapstructure:"insecure"`
  10. MySQLOptions *comopts.MySQLOptions `json:"mysql" mapstructure:"mysql"`
  11. JwtOptions *comopts.JwtOptions `json:"jwt" mapstructure:"jwt"`
  12. FeatureOptions *comopts.FeatureOptions `json:"feature" mapstructure:"feature"`
  13. LogOptions *comopts.LogOptions `json:"log" mapstructure:"log"`
  14. CabinetConnectOptions *CabinetConnectOptions `json:"cabinet" mapstructure:"cabinet"`
  15. }
  16. func NewOptions() *Options {
  17. o := Options{
  18. GenericServerRunOptions: comopts.NewServerRunOptions(),
  19. InsecureServing: comopts.NewInsecureServingOptions(),
  20. MySQLOptions: comopts.NewMySQLOptions(),
  21. JwtOptions: comopts.NewJwtOptions(),
  22. FeatureOptions: comopts.NewFeatureOptions(),
  23. LogOptions: comopts.NewLogOptions(),
  24. CabinetConnectOptions: NewCabinetConnectOptions(),
  25. }
  26. return &o
  27. }
  28. func (o *Options) Flags() (fss flagsets.NamedFlagSets) {
  29. o.GenericServerRunOptions.AddFlags(fss.FlagSet("generic"))
  30. o.JwtOptions.AddFlags(fss.FlagSet("jwt"))
  31. o.MySQLOptions.AddFlags(fss.FlagSet("mysql"))
  32. o.FeatureOptions.AddFlags(fss.FlagSet("features"))
  33. o.InsecureServing.AddFlags(fss.FlagSet("insecure serving"))
  34. o.LogOptions.AddFlags(fss.FlagSet("logs"))
  35. o.CabinetConnectOptions.AddFlags(fss.FlagSet("cabinet"))
  36. return fss
  37. }
  38. func (o *Options) Validate() []error {
  39. var errs []error
  40. errs = append(errs, o.GenericServerRunOptions.Validate()...)
  41. errs = append(errs, o.InsecureServing.Validate()...)
  42. errs = append(errs, o.MySQLOptions.Validate()...)
  43. errs = append(errs, o.JwtOptions.Validate()...)
  44. errs = append(errs, o.FeatureOptions.Validate()...)
  45. errs = append(errs, o.LogOptions.Validate()...)
  46. errs = append(errs, o.CabinetConnectOptions.Validate()...)
  47. return errs
  48. }
  49. func (o *Options) String() string {
  50. data, _ := json.Marshal(o)
  51. return string(data)
  52. }
  53. // Complete set default Options.
  54. func (o *Options) Complete() error {
  55. return nil
  56. }