package makecmd import ( "github.com/spf13/cobra" "yizhisec.com/hsv2/forge/internal/controller/maker" "yizhisec.com/hsv2/forge/internal/opt" ) func App() *cobra.Command { _cmd := &cobra.Command{ Use: "app", Short: "Make Apps(user, client, gateway, mie, nginx, etc...)", } _cmd.AddCommand( appUser(), appClient(), appGateway(), appMie(), appOEM(), appFront(), appNginx(), ) return _cmd } func appUser() *cobra.Command { var ( replica int ) _cmd := &cobra.Command{ Use: "user", Short: "Make User App", RunE: func(cmd *cobra.Command, args []string) error { mk := maker.NewMaker(opt.Cfg.Make.Dir) return mk.AppUser(cmd.Context(), replica) }, } _cmd.Flags().IntVar(&replica, "replica-count", 2, "Replica count") return _cmd } func appClient() *cobra.Command { var ( replica int ) _cmd := &cobra.Command{ Use: "client", Short: "Make Client App", RunE: func(cmd *cobra.Command, args []string) error { mk := maker.NewMaker(opt.Cfg.Make.Dir) return mk.AppClient(cmd.Context(), replica) }, } _cmd.Flags().IntVar(&replica, "replica-count", 2, "Replica count") return _cmd } func appGateway() *cobra.Command { var ( replica int ) _cmd := &cobra.Command{ Use: "gateway", Short: "Make Gateway App", RunE: func(cmd *cobra.Command, args []string) error { mk := maker.NewMaker(opt.Cfg.Make.Dir) return mk.AppGateway(cmd.Context(), replica) }, } _cmd.Flags().IntVar(&replica, "replica-count", 2, "Replica count") return _cmd } func appMie() *cobra.Command { var ( replica int ) _cmd := &cobra.Command{ Use: "mie", Short: "Make Mie App", RunE: func(cmd *cobra.Command, args []string) error { mk := maker.NewMaker(opt.Cfg.Make.Dir) return mk.AppMie(cmd.Context(), replica) }, } _cmd.Flags().IntVar(&replica, "replica-count", 2, "Replica count") return _cmd } func appOEM() *cobra.Command { var ( replica int vendor string ) _cmd := &cobra.Command{ Use: "oem", Short: "Make OEM App", RunE: func(cmd *cobra.Command, args []string) error { mk := maker.NewMaker(opt.Cfg.Make.Dir) return mk.AppOEM(cmd.Context(), replica, vendor) }, } _cmd.Flags().IntVar(&replica, "replica-count", 2, "Replica count") _cmd.Flags().StringVar(&vendor, "vendor", "standard", "Vendor name") return _cmd } func appFront() *cobra.Command { var ( replica int vendor string ) _cmd := &cobra.Command{ Use: "front", Short: "Make Front App", RunE: func(cmd *cobra.Command, args []string) error { mk := maker.NewMaker(opt.Cfg.Make.Dir) return mk.AppFront(cmd.Context(), vendor, replica) }, } _cmd.Flags().IntVar(&replica, "replica-count", 2, "Replica count") _cmd.Flags().StringVar(&vendor, "vendor", "standard", "Vendor name") return _cmd } func appNginx() *cobra.Command { var ( replica int disableSeafile bool ) _cmd := &cobra.Command{ Use: "nginx", Short: "Make Nginx App", RunE: func(cmd *cobra.Command, args []string) error { opts := []maker.NginxOpt{ maker.WithNginxReplica(replica), } if disableSeafile { opts = append(opts, maker.WithoutNginxSeafile()) } mk := maker.NewMaker(opt.Cfg.Make.Dir) return mk.AppNginx(cmd.Context(), opts...) }, } _cmd.Flags().IntVar(&replica, "replica-count", 2, "Replica count") _cmd.Flags().BoolVar(&disableSeafile, "disable-seafile", false, "Disable seafile") return _cmd }