tmud-3.0.0/benchmark/
tmud-3.0.0/cmd/
tmud-3.0.0/cmd/objects/
tmud-3.0.0/cmd/tiny/
tmud-3.0.0/doc/SQLite/
tmud-3.0.0/doc/SQLite3/
tmud-3.0.0/doc/TernaryTrie/
tmud-3.0.0/farts/
tmud-3.0.0/lib/
tmud-3.0.0/lib/engine/
tmud-3.0.0/lib/farts/
tmud-3.0.0/logs/
require 'rdoc/task'
require 'rake/testtask'
require 'rake/packagetask'
require 'pp'

# get version 
require './lib/utility/version'

# files to distribute
PKG_FILES = FileList[
  'tmud.rb', 'tclient.rb', 'dbload.rb', 'dbdump.rb', 'config.yaml',
  'LICENSE', 'CONTRIBUTORS', 'CHANGELOG', 'README', 'TML',
  'farts.grammar', 'Rakefile', 
  'db', 'db/README', 'db/testworld.yaml', 'db/dikuworld.yaml', 'db/tinyworld.yaml',
  'db/license.diku', 'db/license.tiny',
  'farts', 'farts/**/*',
  'test', 'test/**/*', 
  'logs', 'logs/README',
  'benchmark', 'benchmark/README',
  'lib/**/*',
  'cmd/**/*',
  'doc/**/*'
]

# make documentation
Rake::RDocTask.new do |rd|
  rd.rdoc_dir = 'doc'
  rd.main = 'README'
  rd.title = "TeensyMUD #{Version} Mud Server"
#  rd.template = 'kilmer'
#  rd.template = './rdoctemplate.rb'
  rd.rdoc_files.include('README', 'farts.grammar', 'TML', 'tmud.rb', 'tclient.rb',
    'dbload.rb', 'dbdump.rb',  
    'lib/*.rb', 'lib/**/*.rb', 'cmd/**/*.rb')
  rd.options << '-d' 
end

=begin
# run tests
Rake::TestTask.new do |t|
  t.libs << "vendor" << "test"  # default "lib"
  #t.pattern = 'test/test*.rb'  # default 'test/test*.rb'
  t.test_files = FileList['test/test*.rb'] - 
    ["test/test_gameobject.rb",
     "test/test_room.rb",
     "test/test_root.rb",
     "test/test_properties.rb",
     "test/test_dbmstore.rb"
    ]
  t.verbose = true
  t.options = "-c test/test_config.yaml"
end
=end

desc "Package up a distribution"
Rake::PackageTask.new("tmud", Version) do |p|
    p.need_tar_gz = true
    p.need_zip = true
    p.package_files.include(PKG_FILES)
    p.package_files.exclude(/\.svn/)
end
  
desc "Report code statistics (KLOCs, etc) from the application"
task :stats do |t|
  require './code_statistics'
  CodeStatistics.new(
    ["Main", ".", /^tmud.rb$|^tclient.rb$/], 
    ["Library", "lib", /.*\.rb$/], 
    ["Storage", "lib/storage", /.*\.rb$/], 
    ["Engine", "lib/engine", /.*\.rb$/], 
    ["Farts", "lib/farts", /.*\.rb$/], 
    ["Network", "lib/network", /.*\.rb$/], 
    ["Utility", "lib/utility", /.*\.rb$/], 
    ["Core", "lib/core", /.*\.rb$/], 
    ["Protocol", "lib/network/protocol", /.*\.rb$/], 
    ["Commands", "cmd/teensy", /.*\.rb$/],
    ["Benchmarks", "benchmark", /.*\.rb$/],
    ["Tests", "test", /.*\.rb$/]
  ).to_s
end

desc "Make a code release"
task :release do
  baseurl = "http://sourcery.dyndns.org/svn/teensymud"
  sh "cp pkg/tmud-#{Version}.* ../release"
  sh "cp pkg/tmud-#{Version}.* /c/ftp/pub/mud/teensymud"
  sh "svn add ../release/tmud-#{Version}.*"
  sh "svn ci .. -m 'create new packages for #{Version}'"
  sh "svn cp -m 'tagged release #{Version}' #{baseurl}/trunk #{baseurl}/release/tmud-#{Version}"
end

desc "Rebuild the parsers"
task :build_parsers do
  sh "racc -o lib/farts/farts_parser.rb lib/farts/farts_parser.y"
  sh "racc -o lib/utility/boolexp.rb lib/utility/boolexp.y"
end

task :release => [:package]
#task :clean => [:clobber_rdoc]
task :package => [:rdoc]
task :default => [:build_parsers, :rdoc]