# Add your own tasks in files placed in lib/tasks ending in .rake, # for example lib/tasks/switchtower.rake, and they will automatically be available to Rake. require(File.join(File.dirname(__FILE__), 'config', 'boot')) require 'rake' require 'rake/testtask' require 'rake/rdoctask' require 'rake/gempackagetask' require 'tasks/rails' require 'meta_project' require 'rake/contrib/rubyforgepublisher' desc "Deploy basic application directories" task :deploy => :environment do # public is missing dirs = %w{ app lib test config} onserver = "manu@vvv:/home/manu/develop/parlement/" dirs.each do | dir| `rsync -a --delete "#{RAILS_ROOT}/#{dir}" "#{onserver}" --exclude ".svn"` end end PKG_NAME = "parlement" PKG_VERSION = "0.1" PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}" PKG_FILES = FileList[ '[A-Z]*', 'app/**/*', 'components/**/*', 'config/**/*', 'db/**/*', 'lib/**/*', 'public/**/*', 'script/**/*', 'test/**/*', 'vendor/**/*' ].exclude(/\bCVS\b|~$/) spec = Gem::Specification.new do |s| ## Basic information. s.name = PKG_NAME s.version = PKG_VERSION s.summary = "Secure Direct Democracy on a forum" s.description = < [:verify_env_vars, :release_files, :publish_doc, :publish_news, :tag] task :verify_env_vars do raise "RUBYFORGE_USER environment variable not set!" unless ENV['RUBYFORGE_USER'] raise "RUBYFORGE_PASSWORD environment variable not set!" unless ENV['RUBYFORGE_PASSWORD'] puts ENV['RUBYFORGE_USER'] puts ENV['RUBYFORGE_PASSWORD'] end task :publish_doc do publisher = Rake::RubyForgePublisher.new('xforge', ENV['RUBYFORGE_USER']) publisher.upload end desc "Release files on RubyForge" task :release_files => [:gem] do release_files = FileList[ "pkg/#{PKG_FILE_NAME}.gem" ] Rake::XForge::Release.new(MetaProject::Project::XForge::RubyForge.new('xforge')) do |release| # Never hardcode user name and password in the Rakefile! release.user_name = ENV['RUBYFORGE_USER'] release.password = ENV['RUBYFORGE_PASSWORD'] release.files = release_files.to_a release.release_name = "#{PKG_NAME} #{PKG_VERSION}" # The rest of the options are defaults (among others, release_notes and release_changes, parsed from CHANGES) end end desc "Publish news on RubyForge" task :publish_news => [:gem] do release_files = FileList[ "pkg/#{PKG_FILE_NAME}.gem" ] Rake::XForge::NewsPublisher.new(MetaProject::Project::XForge::RubyForge.new('xforge')) do |news| # Never hardcode user name and password in the Rakefile! news.user_name = ENV['RUBYFORGE_USER'] news.password = ENV['RUBYFORGE_PASSWORD'] end end desc "Tag all the CVS files with the latest release number (REL=x.y.z)" task :tag do reltag = "REL_#{PKG_VERSION.gsub(/\./, '_')}" puts "Tagging CVS with [#{reltag}]" sh %{cvs tag #{reltag}} end