Rakefile.pkg 3.05 KB
require(File.join(File.dirname(__FILE__), 'config', 'boot'))

require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'rake/packagetask'
require 'noosfero'

Rake::PackageTask.new(Noosfero::PROJECT, Noosfero::VERSION) do |p|
  p.need_tar_gz = true

  # cleaning temporary files
  FileUtils.rm_rf('tmp')
  FileUtils.mkdir_p('tmp/cache')
  FileUtils.mkdir_p('tmp/sessions')
  FileUtils.mkdir_p('tmp/sockets')

  # application files
  p.package_files.include('app/**/*.{rb,rhtml,rjs,rxml,erb}')
  p.package_files.include('config/**/*.{rb,sqlite3}')
  p.package_files.include('config/ferret_server.yml.dist')
  p.package_files.include('db/migrate/*.rb')
  p.package_files.include('db/schema.rb')
  p.package_files.include('doc/README_FOR_APP')
  p.package_files.include('lib/**/*.{rake,rb}')
  p.package_files.include('Rakefile')
  p.package_files.include('Rakefile.pkg')

  # translation files
  p.package_files.include('po/*/*.po')
  p.package_files.include('po/noosfero.pot')

  # templates
  p.package_files.include('public/designs/templates/**/*')

  # icon sets
  p.package_files.include('public/designs/icons/tango/**/*')
  p.package_files.exclude('public/designs/icons/tango/Tango')
  p.package_files.exclude('public/designs/icons/default')

  # themes
  p.package_files.include('public/designs/themes/noosfero/**/*')
  p.package_files.include('public/designs/themes/base/**/*')
  p.package_files.exclude('public/designs/themes/default')

  # static files
  p.package_files.include('public/dispatch.*')
  p.package_files.include('public/favicon.ico')
  p.package_files.include('public/*.html')
  p.package_files.include('public/*.html.erb')
  p.package_files.include('public/images/**/*')
  p.package_files.include('public/javascripts/**/*')
  p.package_files.include('public/robots.txt')
  p.package_files.include('public/stylesheets/**/*')

  # top-level docs
  p.package_files.include('README')
  p.package_files.include('COPYING')
  p.package_files.include('COPYRIGHT')
  p.package_files.include('INSTALL')
  p.package_files.include('HACKING')

  # scripts
  p.package_files.include('script/**/*')

  # test files
  p.package_files.include('test/**/*.{rb,yml}')
  p.package_files.include('test/fixtures/files/*')
  p.package_files.include('features/**/*')
  p.package_files.include('config/cucumber.yml')

  # empty directories that must exist
  p.package_files.include('tmp/cache')
  p.package_files.include('tmp/sessions')
  p.package_files.include('tmp/sockets')
  p.package_files.include('log')

  # symbolic links
  p.package_files.include('app/views/profile_design/*')
  p.package_files.include('app/views/environment_design/*')

  # util
  p.package_files.include('util/**/*')

  # external resources
  p.package_files.include('vendor/**/*')
  p.package_files.exclude('vendor/rails')

  # online documentation
  p.package_files.include('doc/noosfero/**/*')

  # do not install locally generated files
  p.package_files.exclude('coverage/**/*')
  p.package_files.exclude('public/images/[0-9][0-9][0-9][0-9]/**/*')

end

task :default => :package
task :clean => :clobber_package

# vim: ft=ruby