Class: EnhanceRepo::Other

Inherits:
Object
  • Object
show all
Defined in:
lib/enhance_repo/other.rb

Overview

represents filelist data

See: en.opensuse.org/Standards/Rpm_Metadata

Instance Method Summary collapse

Constructor Details

#initialize(dir) ⇒ Other

Returns a new instance of Other.



35
36
37
38
# File 'lib/enhance_repo/other.rb', line 35

def initialize(dir)
  @dir = dir
  @rpmfiles = []
end

Instance Method Details

#empty?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/enhance_repo/other.rb', line 46

def empty?
  @rpmfiles.empty?
end

#readObject



40
41
42
43
44
# File 'lib/enhance_repo/other.rb', line 40

def read
  Dir["#{@dir}/**/*.rpm"].each do |rpmfile|
    @rpmfiles << rpmfile
  end
end

#write(file) ⇒ Object

write filelists.xml



67
68
69
70
71
72
73
74
75
76
77
# File 'lib/enhance_repo/other.rb', line 67

def write(file)
  # builder = Builder::XmlMarkup.new(:target=>file, :indent=>2)
  # builder.instruct!
  # xml = builder.tag!("otherdata", 'xmlns' => 'xmlns="http://linux.duke.edu/metadata/other"', 'packages'=> @rpmfiles.size ) do |b|
  @rpmfiles.each do |rpmfile|
    #  done package tag
    write_package(file, rpmfile)
  end
  # next package
  # end
end

#write_package(file, rpmfile) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/enhance_repo/other.rb', line 50

def write_package(file, rpmfile)
  b = Builder::XmlMarkup.new(target: file, indent: 2, initial: 2)
  pkgid = PackageId.new(rpmfile)
  puts pkgid.rpm.methods.sort
  pkgid[RPM::TAG_CHANGELOGTEXT].each do |ch|
    puts ch
  end
  exit
  b.package('pkgid' => pkgid.checksum, 'name' => pkgid.name, 'arch' => pkgid.arch) do |b|
    b.version('epoch' => pkgid.version.e, 'ver' => pkgid.version.v, 'rel' => pkgid.version.r)
    pkgid.files.each do |f|
      b.file f
    end
  end
end