diff options
Diffstat (limited to 'storage/mroonga/tools/upload-to-github.rb')
-rwxr-xr-x | storage/mroonga/tools/upload-to-github.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/storage/mroonga/tools/upload-to-github.rb b/storage/mroonga/tools/upload-to-github.rb new file mode 100755 index 00000000..572d65c3 --- /dev/null +++ b/storage/mroonga/tools/upload-to-github.rb @@ -0,0 +1,42 @@ +#!/usr/bin/env ruby + +if ARGV.size < 1 + puts "Usage: #{$0} USER FILE ..." + puts " e.g.: #{$0} kou mroonga-1.10.tar.gz ..." + exit false +end + +require "rubygems" +require "github_api" +require "mime/types" + +user, *files = *ARGV + +print "password[#{user}]: " +system("stty -echo") +password = STDIN.gets.chomp +system("stty echo") +puts + +github = Github.new(:login => user, :password => password) +files.each do |file| + content_type = MIME::Types.type_for(file)[0].to_s + resource = github.repos.downloads.create("mroonga", "mroonga", + :name => File.basename(file), + :size => File.size(file), + :description => File.basename(file), + :content_type => content_type) + p resource + + system("curl", + "-F", "key=#{resource.path}", + "-F", "acl=#{resource.acl}", + "-F", "success_action_status=201", + "-F", "Filename=#{resource.name}", + "-F", "AWSAccessKeyId=#{resource.accesskeyid}", + "-F", "Policy=#{resource.policy}", + "-F", "Signature=#{resource.signature}", + "-F", "Content-Type=#{resource.mime_type}", + "-F", "file=@#{file}", + resource.s3_url) +end |