(cmd *cobra.Command)
| 43 | } |
| 44 | |
| 45 | func Serve(cmd *cobra.Command) error { |
| 46 | env := config.NewEnv() |
| 47 | |
| 48 | k8sClientQPS, err := cmd.Flags().GetInt("k8s-client-qps") |
| 49 | if err != nil { |
| 50 | return err |
| 51 | } |
| 52 | k9sClientBurst, err := cmd.Flags().GetInt("k8s-client-burst") |
| 53 | if err != nil { |
| 54 | return err |
| 55 | } |
| 56 | // Determine listen address |
| 57 | listenAddr, err := cmd.Flags().GetString("listen") |
| 58 | if err != nil { |
| 59 | return err |
| 60 | } |
| 61 | // Backward compatibility: fallback to --port if --listen is not set |
| 62 | port, err := cmd.Flags().GetString("port") |
| 63 | if err != nil { |
| 64 | return err |
| 65 | } |
| 66 | if port != ":7080" { |
| 67 | log.Warn("Flag --port is deprecated, use --listen instead. This will be removed in a future release.") |
| 68 | switch { |
| 69 | case port == "": |
| 70 | listenAddr = "localhost:7080" // default |
| 71 | case port[0] == ':': |
| 72 | listenAddr = "localhost" + port |
| 73 | default: |
| 74 | listenAddr = "localhost:" + port |
| 75 | } |
| 76 | } |
| 77 | certFile, err := cmd.Flags().GetString("certFile") |
| 78 | if err != nil { |
| 79 | return err |
| 80 | } |
| 81 | keyFile, err := cmd.Flags().GetString("keyFile") |
| 82 | if err != nil { |
| 83 | return err |
| 84 | } |
| 85 | noOpen, err := cmd.Flags().GetBool("no-open-browser") |
| 86 | if err != nil { |
| 87 | return err |
| 88 | } |
| 89 | |
| 90 | isSecure := certFile != "" || keyFile != "" |
| 91 | |
| 92 | cfg := config.NewAppConfig(Version, listenAddr, k8sClientQPS, k9sClientBurst, isSecure) |
| 93 | cfg.LoadAppConfig() |
| 94 | |
| 95 | c := container.NewContainer(env, cfg) |
| 96 | e := echo.New() |
| 97 | startBanner() |
| 98 | routes.ConfigureRoutes(e, c) |
| 99 | |
| 100 | if !noOpen { |
| 101 | openDefaultBrowser(c.Config().IsSecure, c.Config().ListenAddr) |
| 102 | } |
no test coverage detected