package cmd import ( "github.com/spf13/cobra" "uauth/internal/opt" "uauth/internal/serve" "uauth/internal/store/cache" "uauth/internal/store/db" "uauth/internal/tool" "uauth/model" ) func initServe() *cobra.Command { svc := &cobra.Command{ Use: "svc", RunE: func(cmd *cobra.Command, args []string) error { tool.TablePrinter(opt.Cfg) tool.Must(cache.Init(opt.Cfg.Svc.Cache)) tool.Must(db.Init(cmd.Context(), opt.Cfg.Svc.DB)) tool.Must(model.Init(db.Default.Session())) return serve.Run(cmd.Context()) }, } svc.Flags().StringVar(&opt.Cfg.Svc.Address, "address", "localhost:8080", "listen address") svc.Flags().StringVar(&opt.Cfg.Svc.Prefix, "prefix", "/oauth/v2", "api prefix") svc.Flags().StringVar(&opt.Cfg.Svc.Cache, "cache", "lru::", "cache uri") svc.Flags().StringVar(&opt.Cfg.Svc.DB, "db", "sqlite::data.sqlite", "database uri") return svc }