Skip to content

Commit e2838b6

Browse files
committed
refactor
1 parent 3653fb7 commit e2838b6

File tree

1 file changed

+40
-30
lines changed

1 file changed

+40
-30
lines changed

cmd/fetch.go

Lines changed: 40 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -137,45 +137,55 @@ func handleTool(client *resty.Client, ver map[string]string, tmp string, tb *typ
137137
}
138138

139139
if tool.DownloadURL != "" {
140-
if strings.HasPrefix(tool.Version, "http") {
141-
resp, err := client.R().
142-
EnableTrace().
143-
Get(tool.Version)
144-
if err != nil {
145-
return nil
146-
}
147-
tool.Version = string(resp.Body())
148-
log.Printf("Latest Version: %s", tool.Version)
149-
}
140+
return downloadFromURL(client, ver, tmp, tb, tool)
141+
} else if ghr != nil {
142+
return downloadViaGithub(tool, ghr, tmp, tb)
143+
}
144+
return nil
145+
}
150146

151-
if tool.Version == ver[tool.Name] {
152-
log.Printf("✅ Skipping since already latest version\n")
153-
return nil
154-
}
155-
if err := fetchTool(tmp, tool.Name, tool.Name, parseTemplate(tool.DownloadURL, tool.Version), tb.Target); err != nil {
147+
func downloadViaGithub(tool *types.Tool, ghr *types.GithubRelease, tmp string, tb *types.Toolbox) error {
148+
matching := findMatching(tool.Name, ghr.Assets)
149+
tool.CouldNotBeFound = true
150+
if matching != nil {
151+
tool.CouldNotBeFound = false
152+
if err := fetchTool(tmp, tool.Name, tool.Name, matching.BrowserDownloadURL, tb.Target); err != nil {
156153
return err
157154
}
158-
} else if ghr != nil {
159-
matching := findMatching(tool.Name, ghr.Assets)
160-
tool.CouldNotBeFound = true
155+
}
156+
for _, add := range tool.Additional {
157+
matching := findMatching(add, ghr.Assets)
161158
if matching != nil {
162159
tool.CouldNotBeFound = false
163-
if err := fetchTool(tmp, tool.Name, tool.Name, matching.BrowserDownloadURL, tb.Target); err != nil {
160+
if err := fetchTool(tmp, add, add, matching.BrowserDownloadURL, tb.Target); err != nil {
164161
return err
165162
}
166163
}
167-
for _, add := range tool.Additional {
168-
matching := findMatching(add, ghr.Assets)
169-
if matching != nil {
170-
tool.CouldNotBeFound = false
171-
if err := fetchTool(tmp, add, add, matching.BrowserDownloadURL, tb.Target); err != nil {
172-
return err
173-
}
174-
}
175-
}
176-
if tool.CouldNotBeFound {
177-
log.Printf("❌ Couldn't find a file here!\n")
164+
}
165+
if tool.CouldNotBeFound {
166+
log.Printf("❌ Couldn't find a file here!\n")
167+
}
168+
return nil
169+
}
170+
171+
func downloadFromURL(client *resty.Client, ver map[string]string, tmp string, tb *types.Toolbox, tool *types.Tool) error {
172+
if strings.HasPrefix(tool.Version, "http") {
173+
resp, err := client.R().
174+
EnableTrace().
175+
Get(tool.Version)
176+
if err != nil {
177+
return nil
178178
}
179+
tool.Version = string(resp.Body())
180+
log.Printf("Latest Version: %s", tool.Version)
181+
}
182+
183+
if tool.Version == ver[tool.Name] {
184+
log.Printf("✅ Skipping since already latest version\n")
185+
return nil
186+
}
187+
if err := fetchTool(tmp, tool.Name, tool.Name, parseTemplate(tool.DownloadURL, tool.Version), tb.Target); err != nil {
188+
return err
179189
}
180190
return nil
181191
}

0 commit comments

Comments
 (0)