#!/usr/bin/env ruby require 'rake' require 'reap/reap' # Load the project information file from standard location. # (Note that this sets the global variable $PROJECT_INFO.) ProjectInfo.load # If one wished this could do the following # instead of using an exteranl file. =begin ProjectInfo.new do title 'Reap' name 'reap' version '4.3.4' date '2006-04-07' created '2004-04-01' status 'beta/stable' author 'Thomas Sawyer' email 'transfire@gmail.com' homepage 'http://reap.rubyforge.org' summary 'Tools for Ruby project testing, management and assistance.' description %{ Reap comprises a set of commonly needed tools for Ruby package developers/deployers. Because of the commonality, Reap utilizes a YAML configuration file to harvest project information, significantly simplifying usage. } distribute [ 'gem', 'deb', 'zip' ] # zip, tar.gz, tbz, tgz, deb dependencies [ 'facets' ] executables [ 'reap' ] package { dir '../DISTRIBUTION' distribute [ 'deb' ] exclude [ 'dist', 'dev', 'scrap', 'web' ] } rubyforge { project 'reap' username 'transami' } release { host 'rubyforge.org' username 'transami' project 'reap' groupid '811' package 'Reap' dir '../DISTRIBUTION' } publish { type 'web' host 'rubyforge.org' username 'transami' dir 'web' } rdoc { dir 'web/doc/api' include [ 'A-Z*', 'lib/**/*' ] exclude [ 'lib/reap/data' ] } announce { to 'transfire@gmail.com' # ruby-talk@ruby-lang.org from 'transfire@gmail.com' domain 'unit.rubyforge.org' server 'smtp.gmail.com' port '587' account 'transfire@gmail.com' type 'login' # cram_md5, plain security 'tls' # ~, tls, ssl (not working yet) #file 'ANN' # which file contains announcement slogan 'REAP THE REWARDS!' links [] } end =end # Here's an exmaple of a task where the parameters # are set progamatically, like a regular Rake task # --instead of being pulled from the project info data. # Even so, the task can still look to the project info's # master (ie. root) level for any missing information. Rake::ReapPackage.new do |pkg| pkg.dir = '../DISTRIBUTION' pkg.distribute = [ 'tar.bz2', 'gem', 'deb' ] pkg.dependencies [ 'facets' ] pkg.executables [ 'reap' ] pkg.exclude = [ 'dist', 'dev', 'scrap', 'web' ] end # The easy way -- just setup the tasks to pull info # from the project information data/file. Rake::ReapAnnounce.new Rake::ReapExTest.new Rake::ReapTest.new Rake::ReapInstall.new Rake::ReapRelease.new Rake::ReapInfo.new Rake::ReapRDoc.new Rake::ReapDoap.new Rake::ReapPublish.new Rake::ReapManifest.new