in arch/mk_syscalls_linux.go [365:388]
func downloadFile(url, destinationDir string) (string, error) {
resp, err := http.Get(url)
if err != nil {
return "", fmt.Errorf("http get failed: %v", err)
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
return "", fmt.Errorf("download failed with http status %v", resp.StatusCode)
}
name := filepath.Join(destinationDir, filepath.Base(url))
f, err := os.Create(name)
if err != nil {
return "", fmt.Errorf("failed to create output file: %v", err)
}
_, err = io.Copy(f, resp.Body)
if err != nil {
return "", fmt.Errorf("failed to write file to disk: %v", err)
}
return name, nil
}