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
|
if PROJ.rubyforge.name.valid? && HAVE_RUBYFORGE
require 'rubyforge'
require 'rake/contrib/sshpublisher'
namespace :gem do
desc 'Package and upload to RubyForge'
task :release => [:clobber, 'gem'] do |t|
v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
pkg = "pkg/#{PROJ.gem._spec.full_name}"
if $DEBUG then
puts "release_id = rf.add_release #{PROJ.rubyforge.name.inspect}, #{PROJ.name.inspect}, #{PROJ.version.inspect}, \"#{pkg}.tgz\""
puts "rf.add_file #{PROJ.rubyforge.name.inspect}, #{PROJ.name.inspect}, release_id, \"#{pkg}.gem\""
end
rf = RubyForge.new
rf.configure rescue nil
puts 'Logging in'
rf.login
c = rf.userconfig
c['release_notes'] = PROJ.description if PROJ.description
c['release_changes'] = PROJ.changes if PROJ.changes
c['preformatted'] = true
files = Dir.glob("#{pkg}*.*")
puts "Releasing #{PROJ.name} v. #{PROJ.version}"
rf.add_release PROJ.rubyforge.name, PROJ.name, PROJ.version, *files
end
end # namespace :gem
namespace :doc do
desc "Publish RDoc to RubyForge"
task :release => %w(doc:clobber_rdoc doc:rdoc) do
config = YAML.load(
File.read(File.expand_path('~/.rubyforge/user-config.yml'))
)
host = "#{config['username']}@rubyforge.org"
remote_dir = "/var/www/gforge-projects/#{PROJ.rubyforge.name}/"
remote_dir << PROJ.rdoc.remote_dir if PROJ.rdoc.remote_dir
local_dir = PROJ.rdoc.dir
Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
end
end # namespace :doc
end # if HAVE_RUBYFORGE
# EOF
|