mirror of
https://github.com/kevingruesser/bootstrap-vz.git
synced 2025-08-24 15:36:27 +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
|
from pkg.sourceslist import SourceLists
|
||||||
self.source_lists = SourceLists(self.manifest.packages, self.manifest_vars)
|
self.source_lists = SourceLists(self.manifest.packages, self.manifest_vars)
|
||||||
from pkg.packagelist import PackageList
|
from pkg.packagelist import PackageList
|
||||||
self.packages = PackageList(self.manifest.packages, self.manifest_vars,
|
self.packages = PackageList(self.manifest.packages, self.manifest_vars, self.source_lists)
|
||||||
default_target=manifest.system['release'], source_lists=self.source_lists)
|
|
||||||
self.include_packages = set()
|
self.include_packages = set()
|
||||||
self.exclude_packages = set()
|
self.exclude_packages = set()
|
||||||
|
|
||||||
|
|
|
@ -3,21 +3,20 @@ from exceptions import PackageError
|
||||||
|
|
||||||
class PackageList(object):
|
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.manifest_vars = manifest_vars
|
||||||
self.source_lists = source_lists
|
self.source_lists = source_lists
|
||||||
self.default_target = default_target
|
|
||||||
self.remote = {}
|
self.remote = {}
|
||||||
self.local = set()
|
self.local = set()
|
||||||
if 'remote' in data:
|
if 'remote' in data:
|
||||||
for package in data['remote']:
|
for package in data['remote']:
|
||||||
target = None
|
target = None
|
||||||
if isinstance(package, dict):
|
if isinstance(package, dict):
|
||||||
name = package['name'].format(**self.manifest_vars)
|
name = package['name']
|
||||||
if 'target' in package:
|
if 'target' in package:
|
||||||
target = package['target'].format(**self.manifest_vars)
|
target = package['target']
|
||||||
else:
|
else:
|
||||||
name = package.format(**self.manifest_vars)
|
name = package
|
||||||
self.add(name, target)
|
self.add(name, target)
|
||||||
if 'local' in data:
|
if 'local' in data:
|
||||||
for package_path in data['local']:
|
for package_path in data['local']:
|
||||||
|
@ -25,7 +24,7 @@ class PackageList(object):
|
||||||
|
|
||||||
def add(self, name, target=None):
|
def add(self, name, target=None):
|
||||||
if target is None:
|
if target is None:
|
||||||
target = self.default_target
|
target = '{system.release}'
|
||||||
name = name.format(**self.manifest_vars)
|
name = name.format(**self.manifest_vars)
|
||||||
target = target.format(**self.manifest_vars)
|
target = target.format(**self.manifest_vars)
|
||||||
if name in self.remote:
|
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)
|
msg = ('The target release {target} was not found in the sources list').format(target=target)
|
||||||
raise PackageError(msg)
|
raise PackageError(msg)
|
||||||
self.remote[name] = target
|
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:
|
if 'sources' in data:
|
||||||
for name, lines in data['sources'].iteritems():
|
for name, lines in data['sources'].iteritems():
|
||||||
for line in lines:
|
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)
|
name = name.format(**self.manifest_vars)
|
||||||
line = line.format(**self.manifest_vars)
|
line = line.format(**self.manifest_vars)
|
||||||
if name not in self.sources:
|
if name not in self.sources:
|
||||||
|
@ -18,6 +18,7 @@ class SourceLists(object):
|
||||||
self.sources[name].append(Source(line))
|
self.sources[name].append(Source(line))
|
||||||
|
|
||||||
def target_exists(self, target):
|
def target_exists(self, target):
|
||||||
|
target = target.format(**self.manifest_vars)
|
||||||
for lines in self.sources.itervalues():
|
for lines in self.sources.itervalues():
|
||||||
if target in (source.distribution for source in lines):
|
if target in (source.distribution for source in lines):
|
||||||
return True
|
return True
|
||||||
|
|
Loading…
Add table
Reference in a new issue