package main
import (
)
type downloadedModule struct {
Path string
Version string
Error string
Info string
GoMod string
Zip string
Dir string
Sum string
GoModSum string
}
func ( string, []string) ([]downloadedModule, error) {
:= make([]string, len())
for , := range {
[] = + "@upgrade"
}
var bytes.Buffer
:= exec.Command("go", append([]string{"mod", "download", "-json"}, ...)...)
.Stderr = os.Stderr
.Stdout = &
.Dir =
if := .Run(); != nil {
return nil,
}
var []downloadedModule
for := json.NewDecoder(&); ; {
var downloadedModule
:= .Decode(&)
if == io.EOF {
break
}
if != nil {
return nil,
}
= append(, )
}
return , nil
}