MCPcopy Index your code
hub / github.com/devspace-sh/devspace / RunUI

Method RunUI

cmd/ui.go:74–210  ·  view source on GitHub ↗

RunUI executes the functionality "devspace ui"

(f factory.Factory)

Source from the content-addressed store, hash-verified

72
73// RunUI executes the functionality "devspace ui"
74func (cmd *UICmd) RunUI(f factory.Factory) error {
75 // Set config root
76 cmd.log = f.GetLog()
77 configOptions := cmd.ToConfigOptions()
78 configLoader, err := f.NewConfigLoader(cmd.ConfigPath)
79 if err != nil {
80 return err
81 }
82 configExists, err := configLoader.SetDevSpaceRoot(cmd.log)
83 if err != nil {
84 return err
85 }
86
87 // Search for an already existing server
88 if !cmd.ForceServer && !cmd.Dev && cmd.Host == "localhost" {
89 checkPort := server.DefaultPort
90 if cmd.Port != 0 {
91 checkPort = cmd.Port
92 }
93
94 for i := 0; i < 20; i++ {
95 available, _ := port.IsAvailable(fmt.Sprintf(":%d", checkPort))
96 if !available {
97 if i+1 == 20 {
98 return errors.Wrap(err, "check for open port")
99 }
100
101 domain := fmt.Sprintf("http://%s:%d", cmd.Host, checkPort)
102
103 // Check if DevSpace server
104 response, err := http.Get(domain + "/api/version")
105 if err != nil {
106 checkPort++
107 continue
108 }
109
110 defer response.Body.Close()
111 contents, err := io.ReadAll(response.Body)
112 if err != nil {
113 checkPort++
114 continue
115 }
116
117 serverVersion := &server.UIServerVersion{}
118 err = json.Unmarshal(contents, serverVersion)
119 if err != nil {
120 checkPort++
121 continue
122 }
123
124 if serverVersion.DevSpace {
125 cmd.log.Infof("Found running UI server at %s", domain)
126 _ = open.Start(domain)
127 return nil
128 }
129
130 checkPort++
131 continue

Callers 1

NewUICmdFunction · 0.95

Calls 15

SetDevSpaceRootMethod · 0.95
LoadLocalCacheMethod · 0.95
LoadWithCacheMethod · 0.95
ListenAndServeMethod · 0.95
IsAvailableFunction · 0.92
CheckKubeContextFunction · 0.92
ExecuteHooksFunction · 0.92
ToConfigOptionsMethod · 0.80
GetLogMethod · 0.65
NewConfigLoaderMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected