From ed4332a6e158c08ea78dada993fe5f8a2e51a695 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fatih=20A=C5=9F=C4=B1c=C4=B1?= Date: Thu, 20 May 2010 06:41:16 +0000 Subject: [PATCH] config: Add a method for setting options This fixes a regression appeared after Config class became a singleton. Different parts of pisi tries to create an instance of Config class with different options. Since it is a singleton, later contructions won't get the new options. Fix this by implementing a new method for setting options instance. --- pisi/__init__.py | 2 +- pisi/api.py | 2 +- pisi/config.py | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pisi/__init__.py b/pisi/__init__.py index 520fa4e5..b5acbcd6 100644 --- a/pisi/__init__.py +++ b/pisi/__init__.py @@ -76,5 +76,5 @@ sys.setdefaultencoding('utf-8') atexit.register(_cleanup) -ctx.config = pisi.config.Config(pisi.config.Options()) +ctx.config = pisi.config.Config() init_logging() diff --git a/pisi/api.py b/pisi/api.py index 366fa789..97b8d468 100644 --- a/pisi/api.py +++ b/pisi/api.py @@ -150,7 +150,7 @@ def set_options(options): options.verbose # flag controlling verbosity of the output messages options.output_dir # build and delta operations package output directory """ - ctx.config = pisi.config.Config(options) + ctx.config.set_options(options) def list_needs_restart(): """ diff --git a/pisi/config.py b/pisi/config.py index 479a9595..31ebc09f 100644 --- a/pisi/config.py +++ b/pisi/config.py @@ -46,7 +46,7 @@ class Config(object): __metaclass__ = pisi.util.Singleton def __init__(self, options = Options()): - self.options = options + self.set_options(options) self.values = pisi.configfile.ConfigurationFile("/etc/pisi/pisi.conf") destdir = self.get_option('destdir') @@ -66,6 +66,9 @@ class Config(object): # build process. self.environ = copy.deepcopy(os.environ) + def set_options(self, options): + self.options = options + def set_option(self, opt, val): setattr(self.options, opt, val)