1 # -*- encoding: binary -*-
2 autoload :Gem, 'rubygems'
5 cgit_url = Wrongdoc.config[:cgit_url]
6 git_url = Wrongdoc.config[:git_url]
12 rc = Net::Netrc.locate('unicorn-raa') or abort "~/.netrc not found"
13 password = rc.password
15 s = Gem::Specification.load('unicorn.gemspec')
16 desc = [ s.description.strip ]
18 desc << "* #{s.email}"
19 desc << "* #{git_url}"
20 desc << "* #{cgit_url}"
21 desc = desc.join("\n")
22 uri = URI.parse('http://raa.ruby-lang.org/regist.rhtml')
25 :short_description => s.summary,
26 :version => s.version.to_s,
28 :owner => s.authors.first,
30 :category_major => 'Library',
31 :category_minor => 'Web',
33 :download => "http://rubyforge.org/frs/?group_id=1306",
35 :description_style => 'Plain',
40 res = Net::HTTP.post_form(uri, form)
51 version = ENV['VERSION'] or abort "VERSION= needed"
52 uri = URI.parse('http://freshmeat.net/projects/unicorn/releases.json')
53 rc = Net::Netrc.locate('unicorn-fm') or abort "~/.netrc not found"
54 api_token = rc.password
55 _, subject, body = `git cat-file tag v#{version}`.split(/\n\n/, 3)
56 tmp = Tempfile.new('fm-changelog')
61 system(ENV["VISUAL"], tmp.path) or abort "#{ENV["VISUAL"]} failed: #$?"
62 changelog = File.read(tmp.path).strip
65 "auth_code" => api_token,
67 "tag_list" => "Experimental",
69 "changelog" => changelog,
73 if ! changelog.strip.empty? && version =~ %r{\A[\d\.]+\d+\z}
74 Net::HTTP.start(uri.host, uri.port) do |http|
75 p http.post(uri.path, req, {'Content-Type'=>'application/json'})
78 warn "not updating freshmeat for v#{version}"
82 # optional rake-compiler support in case somebody needs to cross compile
84 mk = "ext/unicorn_http/Makefile"
86 warn "run 'gmake -C ext/unicorn_http clean' and\n" \
87 "remove #{mk} before using rake-compiler"
89 unless File.readable?("ext/unicorn_http/unicorn_http.c")
90 abort "run 'gmake ragel' or 'make ragel' to generate the Ragel source"
92 spec = Gem::Specification.load('unicorn.gemspec')
93 require 'rake/extensiontask'
94 Rake::ExtensionTask.new('unicorn_http', spec)