MCPcopy Create free account
hub / github.com/UiPath/uipathcli / download

Method download

plugin/module_manager.go:167–188  ·  view source on GitHub ↗
(definition ModuleDefinition, destination string, progressBar *visualization.ProgressBar)

Source from the content-addressed store, hash-verified

165}
166
167func (m ModuleManager) download(definition ModuleDefinition, destination string, progressBar *visualization.ProgressBar) error {
168 out, err := os.Create(destination)
169 if err != nil {
170 return fmt.Errorf("Could not download %s: %w", definition.Name, err)
171 }
172 defer func() { _ = out.Close() }()
173
174 request := network.NewHttpGetRequest(definition.Url, nil, http.Header{})
175 clientSettings := network.NewHttpClientSettings(false, "", map[string]string{}, 0, 1, false)
176 client := network.NewHttpClient(nil, *clientSettings)
177 response, err := client.Send(request)
178 if err != nil {
179 return fmt.Errorf("Could not download %s: %w", definition.Name, err)
180 }
181 defer func() { _ = response.Body.Close() }()
182 downloadReader := m.progressReader("downloading...", "installing... ", response.Body, response.ContentLength, progressBar)
183 _, err = io.Copy(out, downloadReader)
184 if err != nil {
185 return fmt.Errorf("Could not download %s: %w", definition.Name, err)
186 }
187 return nil
188}
189
190func (m ModuleManager) progressReader(text string, completedText string, reader io.Reader, length int64, progressBar *visualization.ProgressBar) io.Reader {
191 return visualization.NewProgressReader(reader, func(progress visualization.Progress) {

Callers 2

offlineMethod · 0.95
getModuleMethod · 0.95

Calls 7

SendMethod · 0.95
progressReaderMethod · 0.95
NewHttpGetRequestFunction · 0.92
NewHttpClientSettingsFunction · 0.92
NewHttpClientFunction · 0.92
CreateMethod · 0.80
CloseMethod · 0.80

Tested by

no test coverage detected