Class: Reap::Manifest

Inherits:
Object
  • Object
show all
Includes:
TaskUtils
Defined in:
lib/reap/class/manifest.rb

Overview

Manifest

Create a manifest file for the package. Presently it is a very simple md5 + filename manifest. In the future this will be exanded to build a varity of manifest formats.

Task specific settings:

include       Files to include
exclude       Files to exclude

Constant Summary collapse

MUST_EXCLUDE =

, ‘dist’, ‘pkg’ ]

[ 'InstalledFiles', '**/CVS/**/*', '**/*~' ]

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from TaskUtils

#ask, #master, #preq_from_name, #provide_setup_rb, #sh, #tell

Constructor Details

#initialize(man) ⇒ Manifest

Returns a new instance of Manifest.



33
34
35
36
37
38
39
40
41
# File 'lib/reap/class/manifest.rb', line 33

def initialize( man )
  @dir     = '.'
  @include = ['**/*']
  @exclude = []

  super

  @exclude |= MUST_EXCLUDE
end

Instance Attribute Details

#dirObject

Returns the value of attribute dir.



31
32
33
# File 'lib/reap/class/manifest.rb', line 31

def dir
  @dir
end

#excludeObject

Returns the value of attribute exclude.



31
32
33
# File 'lib/reap/class/manifest.rb', line 31

def exclude
  @exclude
end

#includeObject

Returns the value of attribute include.



31
32
33
# File 'lib/reap/class/manifest.rb', line 31

def include
  @include
end

Instance Method Details

#generateObject Also known as: call

Generate manifest file.



45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/reap/class/manifest.rb', line 45

def generate #( type=nil )
  manifest_file = File.join( File.expand_path( @dir ), 'MANIFEST' )
  package_files = FileList.new

  package_files.include(*@include)
  package_files.exclude(*@exclude) #if @exclude and not @exclude.empty?
  File.open( manifest_file, 'w+') do |f|
    package_files.each do |pf|
      f << "#{salt(pf)} #{pf}\n" if File.file?(pf)
    end
  end
end