2 require 'rake/testtask'
3 require 'rake/rdoctask'
4 require 'rake/gempackagetask'
8 PKG_VERSION = Radiant::Version.to_s
9 PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
10 RUBY_FORGE_PROJECT = PKG_NAME
11 RUBY_FORGE_USER = ENV['RUBY_FORGE_USER'] || 'jlong'
13 RELEASE_NAME = PKG_VERSION
14 RUBY_FORGE_GROUPID = '1337'
15 RUBY_FORGE_PACKAGEID = '1638'
17 RDOC_TITLE = "Radiant -- Publishing for Small Teams"
18 RDOC_EXTRAS = ["README", "CONTRIBUTORS", "CHANGELOG", "INSTALL", "LICENSE"]
20 namespace 'radiant' do
21 spec = Gem::Specification.new do |s|
23 s.version = PKG_VERSION
24 s.summary = 'A no-fluff content management system designed for small teams.'
25 s.description = "Radiant is a simple and powerful publishing system designed for small teams.\nIt is built with Rails and is similar to Textpattern or MovableType, but is\na general purpose content managment system--not merely a blogging engine."
26 s.homepage = 'http://radiantcms.org'
27 s.rubyforge_project = RUBY_FORGE_PROJECT
28 s.platform = Gem::Platform::RUBY
30 s.executables = (Dir['bin/*'] + Dir['scripts/*']).map { |file| File.basename(file) }
31 s.add_dependency 'rake', '>= 0.7.1'
32 s.autorequire = 'radiant'
34 s.rdoc_options << '--title' << RDOC_TITLE << '--line-numbers' << '--main' << 'README'
35 rdoc_excludes = Dir["**"].reject { |f| !File.directory? f }
36 rdoc_excludes.each do |e|
37 s.rdoc_options << '--exclude' << e
39 s.extra_rdoc_files = RDOC_EXTRAS
40 files = FileList['**/*']
41 files.exclude '**/._*'
42 files.exclude '**/*.rej'
43 files.exclude 'cache/'
44 files.exclude 'config/database.yml'
45 files.exclude 'config/locomotive.yml'
46 files.exclude 'config/lighttpd.conf'
47 files.exclude 'config/mongrel_mimes.yml'
48 files.exclude 'db/*.db'
50 files.exclude 'log/*.log'
51 files.exclude 'log/*.pid'
52 files.include 'log/.keep'
54 files.include 'public/.htaccess'
59 Rake::GemPackageTask.new(spec) do |pkg|
67 sh "gem uninstall #{PKG_NAME}" rescue nil
70 desc "Build and install Gem from source"
71 task :install => [:package, :uninstall] do
72 chdir("#{RADIANT_ROOT}/pkg") do
73 latest = Dir["#{PKG_NAME}-*.gem"].last
74 sh "gem install #{latest}"
79 desc "Publish the release files to RubyForge."
80 task :release => [:gem, :package] do
81 files = ["gem", "tgz", "zip"].map { |ext| "pkg/#{PKG_FILE_NAME}.#{ext}" }
83 system %{rubyforge login --username #{RUBY_FORGE_USER}}
86 system %{rubyforge add_release #{RUBY_FORGE_GROUPID} #{RUBY_FORGE_PACKAGEID} "#{RELEASE_NAME}" #{file}}