package flagutil import ( "errors" "fmt" "os" "strconv" "edge-infra.dev/pkg/edge/api/graph/model" "edge-infra.dev/pkg/edge/edgecli" "edge-infra.dev/pkg/edge/registration" "edge-infra.dev/pkg/lib/cli/rags" ) func GetConnectionFlags(cfg *edgecli.Config) []*rags.Rag { return []*rags.Rag{ { Name: UsernameFlag, Usage: "BSL username with edge credentials", Value: &rags.String{Default: cfg.CurrentBanner().Username}, }, { Name: PasswordFlag, Usage: "BSL password for username", Value: &rags.String{}, }, { Name: Endpoint, Usage: "URL pointing to edge api", Value: &rags.String{Default: cfg.CurrentBanner().Endpoint}, }, { Name: BearerTokenFlag, Usage: "Bearer token from UI", Value: &rags.String{Default: cfg.CurrentBanner().Token}, }, { Name: OrganizationFlag, Usage: "BSL organization for username", Value: &rags.String{Default: cfg.CurrentBanner().TenantOrg}, }, { Name: "bff-endpoint", Usage: "deprecating flag, now is api-endpoint", Value: &rags.String{Default: ""}, }, } } func GetCommonFlags() []*rags.Rag { return []*rags.Rag{ { Name: KubeConfigFlag, Usage: "path to a kubeconfig file, for the store cluster", Value: &rags.String{ Default: fmt.Sprintf("%s/.kube/config", os.Getenv("HOME")), }, }, { Name: KubeConfigContextFlag, Usage: "kubeconfig context, for store cluster", Value: &rags.String{}, }, { Name: LumperImageFlag, Usage: "override default lumper image", Value: &rags.String{Default: registration.DefaultLumperImage}, }, } } func GetStringFlag(rs *rags.RagSet, name string) string { if flag := rs.FlagSet().Lookup(name); flag != nil { return flag.Value.String() } return "" } func GetBoolFlag(rs *rags.RagSet, name string) bool { if flag := rs.FlagSet().Lookup(name); flag != nil { if ret, err := strconv.ParseBool(flag.Value.String()); err == nil { return ret } } return false } func GetIntFlag(rs *rags.RagSet, name string) int { if flag := rs.FlagSet().Lookup(name); flag != nil { if ret, err := strconv.ParseInt(flag.Value.String(), 0, 64); err == nil { return int(ret) } } return 0 } func GetFloat64Flag(rs *rags.RagSet, name string) float64 { if flag := rs.FlagSet().Lookup(name); flag != nil { if ret, err := strconv.ParseFloat(flag.Value.String(), 64); err == nil { return ret } } return 0 } func SetFlag(rs *rags.RagSet, name, value string) error { if flag := rs.FlagSet().Lookup(name); flag != nil { return flag.Value.Set(value) } return errors.New("Flag " + name + " was not found") } func isValidTerminalClass(class *model.TerminalClassType) bool { if class == nil { return false } return *class == model.TerminalClassTypeServer || *class == model.TerminalClassTypeTouchpoint }