@@ -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