29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/akabei/repository.rb', line 29
def load(path)
path = Pathname.new(path)
return unless path.readable?
verify!(path)
db = {}
ArchiveUtils.each_entry(path) do |entry, archive|
db_name, key = *entry.pathname.split('/', 2)
if key.include?('/')
raise Error.new("Malformed repository database: #{path}: #{entry.pathname}")
end
db[db_name] ||= PackageEntry.new
case key
when ''
when 'desc', 'depends', 'files'
load_entries(db[db_name], archive.read_data)
else
raise Error.new("Unknown repository database key: #{key}")
end
end
db.each_value do |entry|
@db[entry.name] = entry
end
nil
end
|