public
Description: An OpenID Consumer plugin for Merb
Homepage:
Clone URL: git://github.com/danwrong/merb_openid.git
merb_openid / Rakefile
100644 75 lines (60 sloc) 2.234 kb
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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
    sh %{#{SUDO} jruby -S gem install pkg/#{spec.name}-#{Merb::VERSION}.gem --no-rdoc --no-ri}
  end
  
end