# ripped off of jamis buck's lovely net::sftp rakefile require 'rubygems' require 'rake' require 'rake/testtask' require 'rake/rdoctask' require 'rake/contrib/sshpublisher' PACKAGE_NAME = "oz" PACKAGE_VERSION = "0.1" SOURCE_FILES = FileList.new do |fl| [ "bin", "test" ].each do |dir| fl.include "#{dir}/**/*" end fl.include "Rakefile" end PACKAGE_FILES = FileList.new do |fl| fl.include "README" fl.include SOURCE_FILES end Gem.manage_gems desc "Default task" task :default => [ :package ] desc "Clean generated files" task :clean do rm_rf "pkg" end package_name = "#{PACKAGE_NAME}-#{PACKAGE_VERSION}" package_dir = "pkg" package_dir_path = "#{package_dir}/#{package_name}" gem_file = "#{package_name}.gem" task :gem => SOURCE_FILES + [ "#{package_dir}/#{gem_file}" ] desc "Build all packages" task :package => [ :gem ] directory package_dir file package_dir_path do mkdir_p package_dir_path rescue nil PACKAGE_FILES.each do |fn| f = File.join( package_dir_path, fn ) if File.directory?( fn ) mkdir_p f unless File.exist?( f ) else dir = File.dirname( f ) mkdir_p dir unless File.exist?( dir ) rm_f f safe_ln fn, f end end end file "#{package_dir}/#{gem_file}" => package_dir do spec = Gem::Specification.new do |s| s.name = 'oz' s.version = '0.1' s.platform = Gem::Platform::RUBY s.date = Time.now s.summary = "oz is a command line tumbler for ozimodo tumblelogs" s.description = "oz is a command line tumbler for ozimodo tumblelogs. Use it to query tumblelogs or post to your tumblelog from the command line." s.bindir = 'bin' s.executables << 'oz' s.default_executable = 'oz' s.files = %w[README] [ 'test/*' ].each do |dir| s.files += Dir.glob( dir ).delete_if { |item| item =~ /^\./ } end s.author = "Chris Wanstrath and Dayne Broderson" s.email = 'chris@ozmm.org' s.homepage = 'http://ozimodo.rubyforge.org, http://rubyforge.org/projects/ozimodo' end Gem::Builder.new(spec).build mv gem_file, "#{package_dir}/#{gem_file}" end