Rakefile in danwrong-merb_openid-0.0.2 vs Rakefile in danwrong-merb_openid-0.0.3
- old
+ new
@@ -1,16 +1,70 @@
require 'rubygems'
require 'rake/gempackagetask'
+require 'rake/contrib/rubyforgepublisher'
spec = eval(File.read(File.join(File.dirname(__FILE__), 'merb_openid.gemspec')))
Rake::GemPackageTask.new(spec) do |pkg|
pkg.gem_spec = spec
+ pkg.need_zip = true
+ pkg.need_tar = true
end
task :install => [:package] do
sh %{sudo gem install pkg/#{spec.name}-#{spec.version} --no-update-sources}
end
+
+task :verify_user do
+ raise "RUBYFORGE_USER environment variable not set!" unless ENV['RUBYFORGE_USER']
+end
+
+desc "Publish gem+tgz+zip on RubyForge. You must make sure lib/version.rb is aligned with the CHANGELOG file"
+task :publish_packages => [:verify_user, :package] do
+ package_name = [spec.name, spec.version].join '-'
+
+ release_files = FileList[
+ "pkg/#{package_name}.gem",
+ "pkg/#{package_name}.tgz",
+ "pkg/#{package_name}.zip"
+ ]
+ unless spec.version =~ /RC[0-9]$/
+ require 'meta_project'
+ require 'rake/contrib/xforge'
+
+ Rake::XForge::Release.new(MetaProject::Project::XForge::RubyForge.new('merbopenid')) do |xf|
+ # Never hardcode user name and password in the Rakefile!
+ xf.user_name = ENV['RUBYFORGE_USER']
+ xf.files = release_files.to_a
+ xf.release_name = "Merb OpenID #{spec.version}"
+ xf.release_notes = ''
+ xf.release_changes = ''
+ end
+ else
+ puts "SINCE THIS IS A PRERELEASE, FILES ARE UPLOADED WITH SSH, NOT TO THE RUBYFORGE FILE SECTION"
+ puts "YOU MUST TYPE THE PASSWORD #{release_files.length} TIMES..."
+
+ host = "merbopenid-website@rubyforge.org"
+ remote_dir = "/var/www/gforge-projects/merbopenid"
+
+ publisher = Rake::SshFilePublisher.new(
+ host,
+ remote_dir,
+ File.dirname(__FILE__),
+ *release_files
+ )
+ publisher.upload
+
+ puts "UPLOADED THE FOLLOWING FILES:"
+ release_files.each do |file|
+ name = file.match(/pkg\/(.*)/)[1]
+ puts "* http://merbopenid.rubyforge.org/#{name}"
+ end
+
+ puts "They are not linked to anywhere, so don't forget to tell people!"
+ end
+end
+
namespace :jruby do
desc "Run :package and install the resulting .gem with jruby"
task :install => :package do
\ No newline at end of file