mirror of
https://github.com/kevingruesser/bootstrap-vz.git
synced 2025-08-22 09:50:37 +00:00
Refactor manifest_vars use in package handling
This commit is contained in:
parent
8d32339fda
commit
50f45d31d4
3 changed files with 13 additions and 10 deletions
|
@ -45,8 +45,7 @@ class BootstrapInformation(object):
|
|||
from pkg.sourceslist import SourceLists
|
||||
self.source_lists = SourceLists(self.manifest.packages, self.manifest_vars)
|
||||
from pkg.packagelist import PackageList
|
||||
self.packages = PackageList(self.manifest.packages, self.manifest_vars,
|
||||
default_target=manifest.system['release'], source_lists=self.source_lists)
|
||||
self.packages = PackageList(self.manifest.packages, self.manifest_vars, self.source_lists)
|
||||
self.include_packages = set()
|
||||
self.exclude_packages = set()
|
||||
|
||||
|
|
|
@ -3,21 +3,20 @@ from exceptions import PackageError
|
|||
|
||||
class PackageList(object):
|
||||
|
||||
def __init__(self, data, manifest_vars, default_target, source_lists):
|
||||
def __init__(self, data, manifest_vars, source_lists):
|
||||
self.manifest_vars = manifest_vars
|
||||
self.source_lists = source_lists
|
||||
self.default_target = default_target
|
||||
self.remote = {}
|
||||
self.local = set()
|
||||
if 'remote' in data:
|
||||
for package in data['remote']:
|
||||
target = None
|
||||
if isinstance(package, dict):
|
||||
name = package['name'].format(**self.manifest_vars)
|
||||
name = package['name']
|
||||
if 'target' in package:
|
||||
target = package['target'].format(**self.manifest_vars)
|
||||
target = package['target']
|
||||
else:
|
||||
name = package.format(**self.manifest_vars)
|
||||
name = package
|
||||
self.add(name, target)
|
||||
if 'local' in data:
|
||||
for package_path in data['local']:
|
||||
|
@ -25,7 +24,7 @@ class PackageList(object):
|
|||
|
||||
def add(self, name, target=None):
|
||||
if target is None:
|
||||
target = self.default_target
|
||||
target = '{system.release}'
|
||||
name = name.format(**self.manifest_vars)
|
||||
target = target.format(**self.manifest_vars)
|
||||
if name in self.remote:
|
||||
|
@ -39,3 +38,7 @@ class PackageList(object):
|
|||
msg = ('The target release {target} was not found in the sources list').format(target=target)
|
||||
raise PackageError(msg)
|
||||
self.remote[name] = target
|
||||
|
||||
def add_local(self, package_path):
|
||||
package_path = package_path.format(**self.manifest_vars)
|
||||
self.local.add(package_path)
|
||||
|
|
|
@ -8,9 +8,9 @@ class SourceLists(object):
|
|||
if 'sources' in data:
|
||||
for name, lines in data['sources'].iteritems():
|
||||
for line in lines:
|
||||
self.add_source(name, '{line}\n'.format(line=line.format(**self.manifest_vars)))
|
||||
self.add(name, line)
|
||||
|
||||
def add_source(self, name, line):
|
||||
def add(self, name, line):
|
||||
name = name.format(**self.manifest_vars)
|
||||
line = line.format(**self.manifest_vars)
|
||||
if name not in self.sources:
|
||||
|
@ -18,6 +18,7 @@ class SourceLists(object):
|
|||
self.sources[name].append(Source(line))
|
||||
|
||||
def target_exists(self, target):
|
||||
target = target.format(**self.manifest_vars)
|
||||
for lines in self.sources.itervalues():
|
||||
if target in (source.distribution for source in lines):
|
||||
return True
|
||||
|
|
Loading…
Add table
Reference in a new issue