require 'rubygems'
require 'main'
require 'aws/s3'
include AWS::S3
$PG_CLASSES = {}
Main {
argument('source_filename') {
cast :string
description 'source filename to copy to S3'
}
argument('bucket_name') {
cast :string
description 'bucket to place the file in on S3'
}
option('access_key_id') {
argument :optional
description 'specify the access_key_id manually'
default 'put your access key here if you want'
}
option('secret_access_key') {
argument :optional
description 'specify the secret key manually'
default 'put your secret key here if you want'
}
def run
bucket_name = params['bucket_name'].value
source_filename = params['source_filename'].value
Base.establish_connection!(
:access_key_id => params['access_key_id'].value,
:secret_access_key => params['secret_access_key'].value
)
begin
Bucket.find(bucket_name)
rescue
puts "Need to make bucket #{bucket_name}.."
Bucket.create(bucket_name)
Bucket.find(bucket_name)
end
puts "Got bucket.."
puts "Uploading #{File.basename(source_filename)}.."
S3Object.store(File.basename(source_filename), open(source_filename), bucket_name)
puts "Stored!"
if ACCEPTED.include?($PG_CLASSES[ row['classid']]) && ACCEPTED.include?($PG_CLASSES[row['refclassid']])
this_obj = DBObject.new(conn, row['classid'], row['objid'], row['objsubid'])
that_obj = DBObject.new(conn, row['refclassid'], row['refobjid'], row['refobjsubid'])
dep_string = this_obj.nsp !~ /^(information_schema|pg_catalog|pg_toast)$/ ? this_obj.to_s : nil
if dep_string && this_obj.to_s !~ /^INDEX /
dep_graphs[that_obj.to_s] ||=[]
dep_graphs[that_obj.to_s] << dep_string
if that_obj.to_s =~ /^(VIEW|TABLE) (.+?) COLUMN /m
ds2 = that_obj.to_s.sub(/ COLUMN.*/m, '')
dep_graphs[ds2] ||=[]
dep_graphs[ds2] << that_obj.to_s unless that_obj.to_s == ds2
elsif that_obj.to_s =~ /^TYPE: COMPOSITE (TABLE|VIEW) /
ds2 = that_obj.to_s.sub(/^TYPE: COMPOSITE (TABLE|VIEW) /, '\1 ')
dep_graphs[ds2] ||=[]
dep_graphs[ds2] << that_obj.to_s unless that_obj.to_s == ds2
end
end
end
exit_success!
end
}