@@ -135,12 +135,6 @@ func (c *Tools) Installed(ctx context.Context) (tools.ToolCollection, error) {
135135// Install crawles the Index folder, downloads the specified tool, extracts the archive in the Tools Folder.
136136// It checks for the Signature specified in the package index.
137137func (c * Tools ) Install (ctx context.Context , payload * tools.ToolPayload ) (* tools.Operation , error ) {
138- path := filepath .Join (payload .Packager , payload .Name , payload .Version )
139-
140- if payload .URL != nil {
141- return c .install (ctx , path , * payload .URL , * payload .Checksum )
142- }
143-
144138 list , err := c .Indexes .List (ctx )
145139 if err != nil {
146140 return nil , err
@@ -160,10 +154,7 @@ func (c *Tools) Install(ctx context.Context, payload *tools.ToolPayload) (*tools
160154 for _ , tool := range packager .Tools {
161155 if tool .Name == payload .Name &&
162156 tool .Version == payload .Version {
163-
164- i := findSystem (tool )
165-
166- return c .install (ctx , path , tool .Systems [i ].URL , tool .Systems [i ].Checksum )
157+ return c .install (ctx , payload .Packager , tool )
167158 }
168159 }
169160 }
@@ -174,9 +165,12 @@ func (c *Tools) Install(ctx context.Context, payload *tools.ToolPayload) (*tools
174165 payload .Packager , payload .Name , payload .Version ))
175166}
176167
177- func (c * Tools ) install (ctx context.Context , path , url , checksum string ) (* tools.Operation , error ) {
168+ func (c * Tools ) install (ctx context.Context , packager string , tool Tool ) (* tools.Operation , error ) {
169+ i := findSystem (tool )
170+ path := filepath .Join (packager , tool .Name , tool .Version )
171+
178172 // Download
179- res , err := http .Get (url )
173+ res , err := http .Get (tool . Systems [ i ]. URL )
180174 if err != nil {
181175 return nil , err
182176 }
@@ -201,7 +195,7 @@ func (c *Tools) install(ctx context.Context, path, url, checksum string) (*tools
201195 sum := sha256 .Sum256 (buffer .Bytes ())
202196 sumString := "SHA-256:" + hex .EncodeToString (sum [:sha256 .Size ])
203197
204- if sumString != checksum {
198+ if sumString != tool . Systems [ i ]. Checksum {
205199 os .RemoveAll (path )
206200 return nil , errors .New ("checksum doesn't match" )
207201 }
0 commit comments