code: func (d Data) ProgressBar(ctx context.Context) error {
  	filesize := int64(d.filesize)
  	dirname := d.dirname
  
  	bar := pb.New64(filesize)
  	bar.Start()
  
  	for {
  		select {
  		case <-ctx.Done():
  			return nil
  		default:
  			size, err := d.Progress(dirname)
  			if err != nil {
  				return errors.Wrap(err, "failed to get directory size")
  			}
  
  			if size < filesize {
  				bar.Set64(size)
  			} else {
  				bar.Set64(filesize)
  				bar.Finish()
  				return nil
  			}
  
  			// To save cpu resource
  			time.Sleep(100 * time.Millisecond)
  		}
  	}
  }
docs: // ProgressBar is to show progressbar