root/Rakefile

Revision 70, 1.5 kB (checked in by james, 2 years ago)

Submit version release candidate.

Line 
1 #!/usr/bin/env rake
2
3 require "rake/testtask"
4 require "rake/packagetask"
5
6 require "find"
7 require "pathname"
8
9 PROJECT_DIRECTORY     = Pathname.new(File.dirname(__FILE__)).realpath
10 DIRECTORIES_TO_IGNORE = %w[.git .svn pkg doc site]
11 FILES_TO_IGNORE       = %w[.gitignore .DS_Store illegal_contact]
12
13 files_to_submit = [ ]
14 PROJECT_DIRECTORY.find do |path|
15   file = dir = path.basename.to_s
16   if path.directory? and DIRECTORIES_TO_IGNORE.include?(dir)
17     Find.prune
18   elsif path.file? and not FILES_TO_IGNORE.include?(file)
19     files_to_submit << path.realpath.relative_path_from(PROJECT_DIRECTORY).to_s
20   end
21 end
22 files_to_submit << "contact" unless files_to_submit.include? "contact"
23
24 task :default => :test
25 Rake::TestTask.new do |test|
26         test.libs       << "src/lib" << "src/test"
27         test.test_files =  %w[src/test/ts_all.rb]
28         test.verbose    =  true
29 end
30
31 namespace :submission do
32   desc "Shows the files that will be submitted"
33   task :show_files do
34     puts files_to_submit
35   end
36  
37   desc "Validate contest rules are followed"
38   task :validate_rules do
39     team_members = PROJECT_DIRECTORY.join("illegal_contact").readlines
40     team_members.delete_at(rand(team_members.size)) until team_members.size <= 5
41     File.open(PROJECT_DIRECTORY.join("contact"), "w") do |file|
42       file.puts team_members
43     end
44   end
45  
46   Rake::PackageTask.new("icfp08", :noversion) do |pkg|
47     pkg.need_tar = true
48     pkg.package_files.include(*files_to_submit)
49   end
50  
51   desc "Build a legal submission file"
52   task :build => %w[validate_rules package]
53 end
Note: See TracBrowser for help on using the browser.