require 'rake' require 'rake/testtask' require 'rake/gempackagetask' require File.dirname(__FILE__) + '/lib/flvtool2/version.rb' PKG_NAME = 'flvtool2' PKG_VERSION = FLVTool2.version PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION.downcase.gsub(/\s/, '_')}" PKG_DESTINATION = "../#{PKG_NAME}" RELEASE_NAME = "REL #{PKG_VERSION}" RUBY_FORGE_PROJECT = PKG_NAME RUBY_FORGE_USER = 'inlet' PKG_FILES = FileList[ '[a-zA-Z]*', 'bin/**/*', 'examples/**/*', 'lib/**/*' ] - [ 'test', 'flvtool2.exe', 'pkg' ] task :default => :all_packages task :windows => [:make_exe, :zip] task :all_packages => [:package, :windows] task :release => [:all_packages, :tag_svn, :rubyforge] task :make_exe do `exerb flvtool2.exy` end task :zip => :make_exe do files = %w{ flvtool2.exe LICENSE CHANGELOG README examples examples/tags.xml } `zip pkg/#{PKG_FILE_NAME}.zip #{files.join(' ')} -x .svn` end task :tag_svn do system("svn cp http://svn.inlet-media.de/svn/flvtool2/trunk http://svn.inlet-media.de/svn/flvtool2/tags/#{PKG_FILE_NAME} -m '* Tag release #{PKG_FILE_NAME}'") end spec = Gem::Specification.new do |s| s.name = PKG_NAME s.version = PKG_VERSION s.summary = 'Flash video (FLV) manipulation tool' s.description = <<-EOF FLVTool2 is a manipulation tool for Macromedia Flash Video files (FLV). It can calculate a lot of meta data, insert an onMetaData tag, cut FLV files, add cue points (onCuePoint), show the FLV structure and print meta data information in XML or YAML. EOF s.files = PKG_FILES.to_a.delete_if {|f| f.include?('.svn')} s.require_path = 'lib' s.bindir = 'bin' # Use these for applications. s.executables = ['flvtool2'] s.default_executable = 'flvtool2' s.author = "Norman Timmler" s.email = "norman.timmler@inlet-media.de" s.homepage = "http://www.inlet-media.de/flvtool2" s.rubyforge_project = "flvtool2" end Rake::GemPackageTask.new(spec) do |pkg| pkg.gem_spec = spec pkg.need_zip = false pkg.need_tar = true end desc "Publish the release files to RubyForge." task :rubyforge => [ :gem ] do `rubyforge login` system("rubyforge add_release #{PKG_NAME} #{PKG_NAME} 'REL #{PKG_VERSION}' pkg/#{PKG_NAME}-#{PKG_VERSION}.gem") system("rubyforge add_release #{PKG_NAME} #{PKG_NAME} 'REL #{PKG_VERSION}' pkg/#{PKG_NAME}-#{PKG_VERSION}.tgz") system("rubyforge add_release #{PKG_NAME} #{PKG_NAME} 'REL #{PKG_VERSION}' pkg/#{PKG_NAME}-#{PKG_VERSION}.zip -t i386") end