package main import ( "github.com/schollz/progressbar/v3" "io" "net/http" "os" ) func downloadFile(url, path string) error { output, err := os.Create(path) if err != nil { return err } response, err := http.Get(url) if err != nil { return err } bar := progressbar.DefaultBytes( response.ContentLength, "downloading", ) _, err = io.Copy(io.MultiWriter(output, bar), response.Body) if err != nil { return err } if err := output.Close(); err != nil { return err } if err := response.Body.Close(); err != nil { return err } return nil }