#!/usr/bin/env ruby require 'upload-ios-snapshot-test-case' bucket_name = ENV['UPLOAD_IOS_SNAPSHOT_BUCKET_NAME'] if bucket_name == nil abort "error: bucket name must be specified in environment UPLOAD_IOS_SNAPSHOT_BUCKET_NAME variable" end aws_key = ENV['AWS_ACCESS_KEY_ID'] aws_secret = ENV['AWS_SECRET_ACCESS_KEY'] if aws_key == nil || aws_secret == nil abort "error: AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY must be defined as environment variables" end path_prefix = ENV['UPLOAD_IOS_SNAPSHOT_BUCKET_PREFIX'] || '/' if !path_prefix.end_with?('/') path_prefix += '/' end s3 = AWS::S3.new bucket = s3.buckets[bucket_name] manager = UploadManager.new(bucket, path_prefix) ARGF.each_line do |line| if line.start_with?('ksdiff') parts = line.split(/"/) if (parts.count >= 4) expected_path = parts[1] actual_path = parts[3] manager.enqueue_upload(expected_path, actual_path) end end # Print the line normally, saving output for the end print line end now = DateTime.now() folder_name = now.strftime('%Y-%m-%d--%H-%M') failures_address = manager.upload(folder_name) if failures_address $stderr.puts "Failures: " + failures_address end