in getdeps/files.go [30:61]
func (ff *Files) Get(projectDir string, urlOverrides *URLOverrides, hashMode HashMode) error {
for i, f := range ff.Filelist {
u, err := url.Parse(f.URL)
if err != nil {
return fmt.Errorf("%s: Invalid URL %q", ff.Label, f.URL)
}
name := path.Base(u.Path)
bytes, fileInfo, err := fetchAndVerify(ff.Label, projectDir, f.URL, hashMode, &f.Hash, urlOverrides)
if err != nil {
return fmt.Errorf("%s: %s: %w", ff.Label, name, err)
}
if err = os.MkdirAll(ff.Dest, os.ModePerm); err != nil {
return err
}
path := path.Join(ff.Dest, name)
perms := os.FileMode(0644)
if fileInfo != nil {
perms = fileInfo.Mode()
}
if err = ioutil.WriteFile(path, bytes, perms); err != nil {
return err
}
ff.Filelist[i] = f
}
return nil
}