apkbuild-gem-resolver: augeas object as class member

This commit is contained in:
Kaarle Ritvanen 2015-07-09 10:46:47 +03:00
parent 3764ff5a51
commit 0689344ce6

View File

@ -13,25 +13,26 @@ class Package
@@packages = {} @@packages = {}
def self.initialize testing def self.initialize testing
Augeas::open(nil, nil, Augeas::NO_MODL_AUTOLOAD) do |aug| @@augeas = Augeas::open(nil, nil, Augeas::NO_MODL_AUTOLOAD)
dir = Dir.pwd dir = Dir.pwd
aug.transform(:lens => 'Shellvars.lns', :incl => dir + '/*/ruby*/APKBUILD') @@augeas.transform(
aug.load :lens => 'Shellvars.lns', :incl => dir + '/*/ruby*/APKBUILD'
)
@@augeas.load
apath = '/files' + dir apath = '/files' + dir
fail if aug.match("/augeas#{apath}//error").length > 0 fail if @@augeas.match("/augeas#{apath}//error").length > 0
repos = ['main'] repos = ['main']
repos << 'testing' if testing repos << 'testing' if testing
for repo in repos for repo in repos
for pkg in aug.match "#{apath}/#{repo}/*" for pkg in @@augeas.match "#{apath}/#{repo}/*"
Aport.new(aug, pkg) unless pkg.end_with? '/ruby' Aport.new(pkg) unless pkg.end_with? '/ruby'
end
end end
Subpackage.initialize aug.get("#{apath}/main/ruby/APKBUILD/pkgver")
end end
Subpackage.initialize @@augeas.get("#{apath}/main/ruby/APKBUILD/pkgver")
@@packages.each_value do |pkg| @@packages.each_value do |pkg|
pkg.depends do |dep| pkg.depends do |dep|
dep.add_user pkg dep.add_user pkg
@ -81,11 +82,11 @@ class Package
end end
class Aport < Package class Aport < Package
def initialize aug, path def initialize path
name = path.split('/')[-1] name = path.split('/')[-1]
get = proc{ |param| get = proc{ |param|
res = aug.get(path + '/APKBUILD/' + param) res = @@augeas.get(path + '/APKBUILD/' + param)
raise param + ' not defined for ' + name unless res raise param + ' not defined for ' + name unless res
res res
} }