Class: MTBuild::OrganizedPackageTask

Inherits:
Rake::PackageTask
  • Object
show all
Defined in:
lib/mtbuild/organized_package_task.rb

Overview

Create a packaging task that will package files into distributable packages (e.g zip archive or tar files). The files are organized in folders inside the package.

The OrganizedPackageTask will create the following targets:

:package

Create all the requested package files.

:clobber_package

Delete all the package files. This target is automatically added to the main clobber target.

:repackage

Rebuild the package files from scratch, even if they are not out of date.

"package_dir/name-version.tgz"

Create a gzipped tar package (if need_tar is true).

"package_dir/name-version.tar.gz"

Create a gzipped tar package (if need_tar_gz is true).

"package_dir/name-version.tar.bz2"

Create a bzip2’d tar package (if need_tar_bz2 is true).

"package_dir/name-version.zip"

Create a zip package archive (if need_zip is true).

Example:

Rake::OrganizedPackageTask.new("MyPackage", "1.2.3") do |p|
  p.need_tar = true
  p.add_files_to_folder('bin', 'bin', '**/*')
  p.package_files.include("lib/**/*.rb")
end

Instance Method Summary collapse

Instance Method Details

#add_files_to_folder(package_folder, included_files, excluded_files = []) ⇒ Object

Add files to a folder in the package



47
48
49
50
51
52
# File 'lib/mtbuild/organized_package_task.rb', line 47

def add_files_to_folder(package_folder, included_files, excluded_files=[])
  file_list = Utils.expand_file_list(included_files, excluded_files)
  package_file_list = file_list.collect{ |f| File.join(package_dir_path, package_folder, File.basename(f)) }
  @origin_files += file_list
  @destination_files += package_file_list
end

#add_folders_to_folder(package_folder, folders, included_files = ['*'], excluded_files = []) ⇒ Object

Add folder to a folder in the package



55
56
57
58
59
60
61
62
63
# File 'lib/mtbuild/organized_package_task.rb', line 55

def add_folders_to_folder(package_folder, folders, included_files=['*'], excluded_files=[])
  folders.each do |folder|
    included_files = Utils.ensure_array(included_files).collect{|f| File.join('**',f)}
    file_list = Utils.expand_file_list(included_files, excluded_files, folder)
    package_file_list = file_list.collect{ |f| File.join(package_dir_path, package_folder, get_relative_path(folder,f)) }
    @origin_files += file_list
    @destination_files += package_file_list
  end
end