public
Rubygem
Description: A lightweight and flexible website management system.
Homepage: http://webby.rubyforge.org/
Clone URL: git://github.com/TwP/webby.git
webby / tasks / rubyforge.rake
100644 58 lines (43 sloc) 1.77 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
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
    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 = [(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