summaryrefslogtreecommitdiffstats
path: root/storage/mroonga/tools/upload-to-github.rb
blob: 572d65c3f0bd7314bd2b0e6082fd0b9e598b5aee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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