class Envirobly::Aws::S3
def upload_git_objects(objects)
def upload_git_objects(objects) pool = Concurrent::FixedThreadPool.new(CONCURRENCY) uploaded = Concurrent::AtomicFixnum.new objects_count = objects.count notifier = Thread.new do next unless objects_count > 0 # Hide cursor # print "\e[?25l" # $stdout.flush loop do value = uploaded.value print "\rUploading build context files: #{value}/#{objects_count}" $stdout.flush sleep 0.5 break if value >= objects_count end # Show cursor again # print "\e[?25h\n" end objects.each do |(chdir, object_hash)| pool.post do compress_and_upload_object(object_hash, chdir:) uploaded.increment end end pool.shutdown pool.wait_for_termination notifier.join end