# $Id$ 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:package'] 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.configure 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 = [(PROJ.gem.need_tar ? "#{pkg}.tgz" : nil), (PROJ.gem.need_zip ? "#{pkg}.zip" : nil), "#{pkg}.gem"].compact 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