/plugins/thingfish-filestore-filesystem/Rakefile
https://bitbucket.org/laika/thingfish · Rakefile · 104 lines · 70 code · 29 blank · 5 comment · 2 complexity · 072836ca1e31c8677002e0561a44b86a MD5 · raw file
- #!/usr/bin/env rake
- require 'rake'
- require 'rake/clean'
- require 'rake/gempackagetask'
- require 'rake/rdoctask'
- require 'spec/rake/spectask'
- require 'pathname'
- require 'fileutils'
- BASEDIR = Pathname.new( __FILE__ ).dirname.expand_path
- LIBDIR = BASEDIR + 'lib'
- TF_DIR = BASEDIR.parent.parent
- TF_LIBDIR = TF_DIR + 'lib'
- PKG_NAME = "thingfish-filestore-filesystem"
- PKG_VERSION = "0.3.0"
- PKG_FILE_NAME = PKG_NAME + '-' + PKG_VERSION
- RELEASE_NAME = "REL #{PKG_VERSION}"
- TEXT_FILES = %w( README LICENSE )
- SPEC_FILES = Dir.glob('spec/*_spec.rb')
- LIB_FILES = Dir.glob('lib/**/*.rb').delete_if {|item| item =~ /\.svn/ }
- RELEASE_FILES = TEXT_FILES + LIB_FILES + SPEC_FILES
- desc "Build package if tests pass"
- task :default => [:spec, :package]
- ### Task: spec
- Spec::Rake::SpecTask.new(:spec) do |task|
- task.libs += [TF_LIBDIR.to_s]
- task.spec_files = SPEC_FILES
- task.spec_opts = ['-c', '-f','s']
- end
- ### Task: rdoc
- Rake::RDocTask.new do |rdoc|
- rdoc.rdoc_dir = 'docs/html'
- rdoc.title = "ThingFish-FilesystemFileStore - Filesystem-based filestore plugin"
- rdoc.options += ['-w', '4', '-SHN', '-i', BASEDIR.to_s]
- rdoc.rdoc_files.include TEXT_FILES
- rdoc.rdoc_files.include LIB_FILES
- end
- ### Task: clean
- desc "Clean pkg, coverage, and rdoc; remove .bak files"
- task :clean => [ :clobber_rdoc, :clobber_package, :clobber_coverage ] do
- files = FileList['**/*.bak']
- files.clear_exclude
- File.rm( files ) unless files.empty?
- end
- ### Task: gem
- gemspec = Gem::Specification.new do |gem|
- gem.name = PKG_NAME
- gem.version = PKG_VERSION
- gem.summary = "Filesystem-based ThingFish filestore plugin"
- gem.description = "This FileStore stores resources on disk in a hierarchy of " +
- "hashed directories. It uses NFS-safe locking for writes, and should be " +
- "threadsafe."
- gem.authors = "Michael Granger and Mahlon E. Smith"
- gem.email = "ged@FaerieMUD.org, mahlon@martini.nu"
- gem.homepage = "http://opensource.laika.com/wiki/ThingFish"
- gem.rubyforge_project = 'laika'
- gem.has_rdoc = true
- gem.files = RELEASE_FILES
- gem.test_files = SPEC_FILES
- gem.files += Dir.glob( "resources/**/*" )
- gem.add_dependency( 'thingfish', '>= 0.3.0' )
- gem.add_dependency( 'lockfile', '>= 1.4.1' )
- end
- Rake::GemPackageTask.new( gemspec ) do |task|
- task.gem_spec = gemspec
- task.need_tar = true
- task.need_zip = true
- end
- task :install => [:test, :package] do
- installer = Gem::Installer.new( %{pkg/#{PKG_FILE_NAME}.gem} )
- intaller.install
- end
- task :uninstall => [:clean] do
- uninstaller = Gem::Uninstaller.new( name )
- uninstaller.uninstall
- end