-
Notifications
You must be signed in to change notification settings - Fork 20
/
rubyforge.rake
59 lines (46 loc) · 1.97 KB
/
rubyforge.rake
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
require 'tasks/config'
#-----------------------------------------------------------------------
# Rubyforge additions to the task library
#-----------------------------------------------------------------------
if rf_conf = Configuration.for_if_exist?("rubyforge") then
abort("rubyforge gem not installed 'gem install rubyforge'") unless Utils.try_require('rubyforge')
proj_conf = Configuration.for('project')
namespace :dist do
desc "Release files to rubyforge"
task :rubyforge => [:clean, :package, :package_win] do
rubyforge = RubyForge.new
config = {}
config["release_notes"] = proj_conf.description
config["release_changes"] = Utils.release_notes_from(proj_conf.history)[Amalgalite::VERSION]
config["Prefomatted"] = true
rubyforge.configure config
# make sure this release doesn't already exist
releases = rubyforge.autoconfig['release_ids']
if releases.has_key?(Amalgalite::GEM_SPEC.name) and releases[Amalgalite::GEM_SPEC.name][Amalgalite::VERSION] then
abort("Release #{Amalgalite::VERSION} already exists! Unable to release.")
end
puts "Uploading to rubyforge..."
files = FileList[File.join("pkg","#{Amalgalite::GEM_SPEC.name}-#{Amalgalite::VERSION}*.*")].to_a
files.each do |f|
puts " * #{f}"
end
rubyforge.login
rubyforge.add_release(Amalgalite::GEM_SPEC.rubyforge_project, Amalgalite::GEM_SPEC.name, Amalgalite::VERSION, *files)
puts "done."
end
end
namespace :announce do
desc "Post news of #{proj_conf.name} to #{rf_conf.project} on rubyforge"
task :rubyforge do
info = Utils.announcement
puts "Subject : #{info[:subject]}"
msg = "#{info[:title]}\n\n#{info[:urls]}\n\n#{info[:release_notes]}"
puts msg
rubyforge = RubyForge.new
rubyforge.configure
rubyforge.login
rubyforge.post_news(rf_conf.project, info[:subject], msg )
puts "Posted to rubyforge"
end
end
end