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