kgio 2.8.1 - minor improvements and test fixes
[kgio.git] / Rakefile
blob0fe4be3ea935c6162d8cf15b34bcc2491fc05330
1 # -*- encoding: binary -*-
2 cgit_url = "http://bogomips.org/kgio.git"
3 git_url = 'git://bogomips.org/kgio.git'
5 desc "post news article to rubyforge"
6 task :publish_news do
7   require 'rubyforge'
8   spec = Gem::Specification.load('kgio.gemspec')
9   tmp = Tempfile.new('rf-news')
10   _, subject, body = `git cat-file tag v#{spec.version}`.split(/\n\n/, 3)
11   tmp.puts subject
12   tmp.puts
13   tmp.puts spec.description.strip
14   tmp.puts ""
15   tmp.puts "* #{spec.homepage}"
16   tmp.puts "* #{spec.email}"
17   tmp.puts "* #{git_url}"
18   tmp.print "\nChanges:\n\n"
19   tmp.puts body
20   tmp.flush
21   system(ENV["VISUAL"], tmp.path) or abort "#{ENV["VISUAL"]} failed: #$?"
22   msg = File.readlines(tmp.path)
23   subject = msg.shift
24   blank = msg.shift
25   blank == "\n" or abort "no newline after subject!"
26   subject.strip!
27   body = msg.join("").strip!
29   rf = RubyForge.new.configure
30   rf.login
31   rf.post_news('rainbows', subject, body)
32 end
34 desc "post to RAA"
35 task :raa_update do
36   require 'net/http'
37   require 'net/netrc'
38   rc = Net::Netrc.locate('kgio-raa') or abort "~/.netrc not found"
39   password = rc.password
41   s = Gem::Specification.load('kgio.gemspec')
42   desc = [ s.description.strip ]
43   desc << ""
44   desc << "* #{s.email}"
45   desc << "* #{git_url}"
46   desc << "* #{cgit_url}"
47   desc = desc.join("\n")
48   uri = URI.parse('http://raa.ruby-lang.org/regist.rhtml')
49   form = {
50     :name => s.name,
51     :short_description => s.summary,
52     :version => s.version.to_s,
53     :status => 'experimental',
54     :owner => s.authors.first,
55     :email => s.email,
56     :category_major => 'Library',
57     :category_minor => 'System',
58     :url => s.homepage,
59     :download => 'http://rubyforge.org/frs/?group_id=8977',
60     :license => "LGPL",
61     :description_style => 'Plain',
62     :description => desc,
63     :pass => password,
64     :submit => 'Update',
65   }
66   res = Net::HTTP.post_form(uri, form)
67   p res
68   puts res.body
69 end