mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-08 23:18:10 -05:00
[downloader]: Fix broken progress bar when content-length not provided (#8010)
* downloader: Fix broken progress bar * Fix syntax error * Fix variable scope * Revert last changes * Remove redundant space
This commit is contained in:
@@ -125,32 +125,27 @@ def http_downloader(uri, filename = File.basename(url), verbose = false)
|
||||
warn "\n"
|
||||
end
|
||||
|
||||
progress_bar_thread = progress_bar.show # print progress bar
|
||||
|
||||
# read file chunks from server, write it to filesystem
|
||||
File.open(filename, 'wb') do |io|
|
||||
progress_bar_thread = progress_bar.show # print progress bar
|
||||
|
||||
response.read_body do |chunk|
|
||||
downloaded_size += chunk.size # record downloaded size, used for showing progress bar
|
||||
progress_bar.set_downloaded_size(downloaded_size, invalid_size_error: false) if file_size.positive?
|
||||
|
||||
io.write(chunk) # write to file
|
||||
end
|
||||
ensure
|
||||
# stop progress bar, wait for it to terminate
|
||||
progress_bar.progress_bar_showing = false
|
||||
progress_bar_thread.join
|
||||
end
|
||||
ensure
|
||||
# stop progress bar, wait for it to terminate
|
||||
progress_bar.progress_bar_showing = false
|
||||
progress_bar_thread.join
|
||||
end
|
||||
end
|
||||
rescue OpenSSL::SSL::SSLError
|
||||
# handle SSL errors
|
||||
ssl_error_retry += 1
|
||||
|
||||
if ssl_error_retry <= 3
|
||||
retry
|
||||
else
|
||||
raise
|
||||
end
|
||||
ssl_error_retry <= 3 ? retry : raise
|
||||
end
|
||||
|
||||
def external_downloader(uri, filename = File.basename(url), verbose = false)
|
||||
|
||||
Reference in New Issue
Block a user