4 class PackageDbError < CruxUtilsError; end
5 class PackageNotFoundError < PackageDbError; end
7 FILE = "/var/lib/pkg/db"
18 @lines = File.read(FILE).split("\n").map { |l| l.strip }
25 name = name.to_str.strip
28 found = @lines.find { |l| l == name }
29 raise(PackageNotFoundError) if found.nil?
31 i = @lines.index(found)
33 version, release = @lines[i + 1].match(/^(.*)-(\d+)$/).captures
36 (i + 2).upto(@lines.length) do |i|
37 break if @lines[i].strip.empty?
42 Package.new(name, version, release, files.sort)