bootstrap-vz/bootstrapvz/base/pkg/preferenceslist.py
2014-04-04 12:22:46 +02:00

49 lines
1.2 KiB
Python

class PreferenceLists(object):
"""Represents a list of preferences lists for apt
"""
def __init__(self, manifest_vars):
"""
Args:
manifest_vars (dict): The manifest variables
"""
# A dictionary with the name of the file in preferences.d as the key
# That values are lists of Preference objects
self.preferences = {}
# Save the manifest variables, we need the later on
self.manifest_vars = manifest_vars
def add(self, name, preferences):
"""Adds a preference to the apt preferences list
Args:
name (str): Name of the file in preferences.list.d, may contain manifest vars references
preferences (object): The preferences
"""
name = name.format(**self.manifest_vars)
self.preferences[name] = [Preference(p) for p in preferences]
class Preference(object):
"""Represents a single preference
"""
def __init__(self, preference):
"""
Args:
preference (dict): A apt preference dictionary
Raises:
PreferenceError
"""
self.preference = preference
def __str__(self):
"""Convert the object into a preference block
Returns:
string.
"""
return "Package: {package}\nPin: {pin}\nPin-Priority: {pin-priority}\n".format(**self.preference)