require 'reap/task' # # Publish Task # class Reap::Publish < Reap::Task task_desc "Publish documents to the web." section_required true attr_accessor :host, :type, :dir, :project, :username attr_accessor :exclude # not using yet def init @type ||= 'www' @host ||= 'rubyforge.org' @project ||= master['rubyforge']['project'] || master['name'] @username ||= master['rubyforge']['username'] @exclude ||= [] end def run cmd = ''; skip = false case @host when 'rubyforge', 'rubyforge.org' case @type when 'www', 'web' cmd = %{scp -r #{@dir}/* #{@username}@rubyforge.org:/var/www/gforge-projects/#{@project}/} else puts %{Unrecognized publishing kind '#{@type}' for host '#{@host}'. Skipped.} skip = true end else puts %{Unrecognized publishing host '#{@host}'. Skipped.} skip = true end unless skip puts "Reap is shelling out publishing work..." sh(cmd) unless $PRETEND end end end