# Originally used from Teensey MUD. Some parts are still used with ZNMud engine
# I will try to upkeep and maintain this rakefile -- Craig
# Primarily this is used to make rdoc and po files
require 'rake/rdoctask'
require 'rake/testtask'
require 'rake/packagetask'
require 'pp'
# get version
require 'lib/utility/version'
# files to distribute
PKG_FILES = FileList[
'znmud.rb', 'tclient.rb', 'dbload.rb', 'dbdump.rb', 'config.yaml',
'LICENSE', 'CONTRIBUTORS', 'CHANGELOG', 'README.txt', 'README-teensy.txt', '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/**/*',
'occupations',
'po/**/*',
'locale/**/*',
'doc/**/*'
]
# make documentation
Rake::RDocTask.new do |rd|
rd.rdoc_dir = 'doc'
rd.main = 'README.txt'
rd.title = "ZNMud Engine v#{Version} Mud Server"
# rd.template = 'kilmer'
# rd.template = './rdoctemplate.rb'
rd.rdoc_files.include('README.txt', 'README-teensy.txt', 'farts.grammar', 'TML', 'znmud.rb', 'tclient.rb',
'dbload.rb', 'dbdump.rb',
'lib/*.rb', 'lib/**/*.rb', 'cmd/**/*.rb')
rd.options << '-d'
end
# 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"
]
t.verbose = true
t.options = "-c test/test_config.yaml"
end
desc "Package up a distribution"
Rake::PackageTask.new("znmud", 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", ".", /^znmud.rb$|^tclient.rb$/],
["Library", "lib", /.*\.rb$/],
["Storage", "lib/storage", /.*\.rb$/],
["Engine", "lib/engine", /.*\.rb$/],
["Combat", "lib/combat", /.*\.rb$/],
["OLC", "lib/olc", /.*\.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://znmud.com/zombiemud"
sh "svn cp -m 'tagged release #{Version}' #{baseurl}/trunk #{baseurl}/tags/znmud-#{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
desc "Update pot/po files."
task :updatepo do
require 'gettext/utils'
GetText.update_pofiles("cmd", Dir.glob("cmd/**/*.rb"), "znmud #{Version}")
GetText.update_pofiles("engine", Dir.glob("lib/engine/*.rb"), "znmud #{Version}")
GetText.update_pofiles("core", Dir.glob(["lib/core/*.rb","lib/combat/*.rb"]), "znmud #{Version}")
end
desc "Create mo-files"
task :makemo do
require 'gettext/utils'
GetText.create_mofiles(true)
end
task :release => [:package]
#task :clean => [:clobber_rdoc]
task :package => [:rdoc]
#task :default => [:build_parsers, :rdoc, :test]