|
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 |
|---|