Class: Slackware::PackageBundle

Inherits:
Package
  • Object
show all
Defined in:
lib/slackware/package_bundle.rb

Constant Summary

Constants inherited from Package

Slackware::Package::FMT_UPGRADE_TIME, Slackware::Package::RE_COMPRESSED_PACKAGE_SIZE, Slackware::Package::RE_FILE_LIST, Slackware::Package::RE_PACKAGE_DESCRIPTION, Slackware::Package::RE_PACKAGE_LOCATION, Slackware::Package::RE_UNCOMPRESSED_PACKAGE_SIZE

Instance Attribute Summary collapse

Attributes inherited from Package

#arch, #build, #file, #name, #owned_files, #path, #tag, #tag_sep, #time, #upgrade_time, #version

Instance Method Summary collapse

Methods inherited from Package

#compressed_size, #compressed_size=, #fullname, #get_owned_files, #get_path, #get_time, #package_description, #package_description=, #package_location, #package_location=, parse, #set_owned_files, #uncompressed_size, #uncompressed_size=

Constructor Details

#initialize(name = nil) ⇒ PackageBundle

Returns a new instance of PackageBundle.



27
28
29
# File 'lib/slackware/package_bundle.rb', line 27

def initialize(name = nil)
  super
end

Instance Attribute Details

#archiveObject

Returns the value of attribute archive.



25
26
27
# File 'lib/slackware/package_bundle.rb', line 25

def archive
  @archive
end

Instance Method Details

#get_file_listObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/slackware/package_bundle.rb', line 42

def get_file_list
                    pkg = "%s/%s.%s" % [self.path, self.fullname, self.archive]
                    return nil unless File.exist?(pkg)

  e_flag = ""
  if pkg =~ /txz$/
    e_flag = "J"
  elsif pkg =~ /tgz$/
    e_flag = "z"
  elsif pkg =~ /tbz$/
    e_flag = "j"
  end
  IO.popen("tar #{e_flag}wtf #{pkg}") {|f|
    f.readlines.map {|l| l.chomp }
  } 
end

#inspectObject



74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/slackware/package_bundle.rb', line 74

def inspect
  "#<%s:0x%x name=%s version=%s arch=%s build=%s tag=%s archive=%s>" % [
    self.class.name,
    self.object_id,
    self.name.inspect,
    self.version.inspect,
    self.arch.inspect,
    self.build,
    self.tag.inspect,
                            self.archive.inspect
  ]
end

#parse(name) ⇒ Object



31
32
33
34
35
36
37
38
39
40
# File 'lib/slackware/package_bundle.rb', line 31

def parse(name)
        super(name)
        if self.build =~ /^(\d+.*)\.(t[gx]z)$/
                self.build = $1
                self.archive = $2
        elsif self.tag =~ /^(.*)\.(t[gx]z)$/
                self.tag = $1
                self.archive = $2
        end
end

#read_file(file) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/slackware/package_bundle.rb', line 59

def read_file(file)
                    pkg = "%s/%s.%s" % [self.path, self.fullname, self.archive]
                    return nil unless File.exist?(pkg)

  e_flag = ""
  if pkg =~ /txz$/
    e_flag = "J"
  elsif pkg =~ /tgz$/
    e_flag = "z"
  elsif pkg =~ /tbz$/
    e_flag = "j"
  end
  IO.popen("tar #{e_flag}xOf #{pkg} #{file}") {|f| f.read }
end