Rake 0.5.0 or greater required.
[redact.git] / Rakefile
1 # $Id: Rakefile 14 2005-03-29 16:25:21Z tilman $
2
3 require "rake/clean"
4 require "rake/testtask"
5 require "rake/rdoctask"
6 require "rake/packagetask"
7 require "rake/contrib/compositepublisher.rb"
8 require "rake/contrib/sshpublisher"
9
10 # make sure we run at least Rake 0.5.0
11 if (RAKEVERSION.split(".").map { |p| p.to_i } <=> [0, 5, 0]) < 0
12         raise("Rake 0.5.0 or greater required")
13 end
14
15 PKG_NAME = "redact"
16 PKG_VERSION = File.read("lib/redact/redact.rb").
17               match(/^\s*VERSION = \"(.*)\"\s*$/).captures.first
18
19 CLOBBER.include(FileList["test/*.edj"])
20
21 sitelibdir = Config::CONFIG["sitelibdir"]
22 destdir = "#{ENV["DESTDIR"]}"
23 prefix = ENV["PREFIX"] || "/usr/local"
24
25 task :install do |t|
26         ddir = destdir + prefix + "/bin"
27         FileUtils::Verbose.install("bin/redact", ddir, :mode => 0755)
28
29         ddir = destdir + sitelibdir + "/redact"
30
31         FileUtils::Verbose.mkdir(ddir) unless File.directory?(ddir)
32
33         ["app", "part", "program", "redact"].each do |file|
34                 FileUtils::Verbose.install("lib/redact/#{file}.rb", ddir,
35                                            :mode => 0644)
36         end
37 end
38
39 task :test
40
41 Rake::TestTask.new do |t|
42         t.libs << "lib"
43         t.test_files = FileList["test/test*.rb"]
44         t.verbose = true
45 end
46
47 Rake::RDocTask.new do |t|
48         t.rdoc_dir = "doc"
49         t.title = "Redact - An Edje Compiler written in Ruby"
50         t.options = ["--line-numbers", "--inline-source", "--main", "README"]
51         t.rdoc_files.include("README", "COPYING", "AUTHORS", "ChangeLog",
52                              "TODO", "lib/redact/redact.rb",
53                              "lib/redact/part.rb", "lib/redact/program.rb")
54 end
55
56 Rake::PackageTask.new(PKG_NAME, PKG_VERSION) do |t|
57         t.need_tar_gz = true
58         t.package_files.include("[A-Z]*", "bin/redact", "lib/redact/*.rb",
59                                 "test/*.rb")
60 end
61
62 task :publish => [:rdoc, :package] do
63         p = Rake::CompositePublisher.new
64         p.add(Rake::SshFreshDirPublisher.new("code-monkey.de",
65                                              "public_html/docs/" +
66                                              PKG_NAME, "doc"))
67         p.add(Rake::SshFilePublisher.new("code-monkey.de",
68                                          ".", "pkg",
69                                          "#{PKG_NAME}-#{PKG_VERSION}.tar.gz"))
70         p.upload
71 end