Class: EnhanceRepo::RpmMd::DiskUsageProperty
- Defined in:
- lib/enhance_repo/rpm_md/suse_data.rb
Instance Attribute Summary
Attributes inherited from Property
Instance Method Summary collapse
-
#initialize(pkgid, rpmfile) ⇒ DiskUsageProperty
constructor
A new instance of DiskUsageProperty.
- #write(builder, _pkgid) ⇒ Object
Methods inherited from Property
Constructor Details
#initialize(pkgid, rpmfile) ⇒ DiskUsageProperty
Returns a new instance of DiskUsageProperty.
57 58 59 60 61 |
# File 'lib/enhance_repo/rpm_md/suse_data.rb', line 57 def initialize(pkgid, rpmfile) super('diskusage') @pkgid = pkgid @rpmfile = rpmfile end |
Instance Method Details
#write(builder, _pkgid) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/enhance_repo/rpm_md/suse_data.rb', line 63 def write(builder, _pkgid) dirsizes = {} dircount = {} `rpm -q --queryformat \"[%{FILENAMES} %{FILESIZES}\n]\" -p '#{@rpmfile}'`.each_line do |line| file, size = line.split dirsizes[File.dirname(file)] = 0 unless dirsizes.key?(File.dirname(file)) dircount[File.dirname(file)] = 0 unless dircount.key?(File.dirname(file)) dirsizes[File.dirname(file)] += size.to_i dircount[File.dirname(file)] += 1 end builder.diskusage do |b| b.dirs do dirsizes.each do |k, v| b.dir('name' => k, 'size' => v, 'count' => dircount[k]) end end end end |