#!/usr/bin/env ruby require 'second_curtain' parser = Parser.new() ARGF.each_line do |line| parser.parse_line(line) print line end if parser.has_failing_commands bucket_name = ENV['UPLOAD_IOS_SNAPSHOT_BUCKET_NAME'] if bucket_name == nil abort "error: Second Curtain 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: Second Curtain 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 folder_name = ENV['UPLOAD_IOS_SNAPSHOT_FOLDER_NAME'] if !folder_name folder_name = ENV['TRAVIS_JOB_ID'] end if !folder_name now = DateTime.now() folder_name = now.strftime('%Y-%m-%d--%H-%M') end client_settings = {} client_settings[:region] = ENV['AWS_REGION'] if ENV['AWS_REGION'] s3 = AWS::S3.new client_settings bucket = s3.buckets[bucket_name] manager = UploadManager.new(bucket, path_prefix) parser.failing_commands.each do |command| manager.enqueue_upload(command.before_path, command.after_path) end failures_address = manager.upload(folder_name) if failures_address $stderr.puts ("Failures: " + failures_address) end end