From d8cbd1c6e8842daae531a18fee7bfab349ee9e18 Mon Sep 17 00:00:00 2001 From: Mike Khiretskiy Date: Tue, 29 Jul 2014 14:40:58 +0400 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20default=5Fopts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- update/emerge_parser.py | 13 +++++++++++-- update/update.py | 12 ++++++++---- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/update/emerge_parser.py b/update/emerge_parser.py index a9064c6..33d5699 100644 --- a/update/emerge_parser.py +++ b/update/emerge_parser.py @@ -102,12 +102,21 @@ class EmergeCommand(CommandExecutor): cmd = getProgPath("/usr/bin/emerge") def __init__(self, packages, extra_params=None, env=None, cwd=None, - logfile=None): + logfile=None, emerge_default_opts=None): extra_params = extra_params or [] self.child = None self.packages = packages self.params = self.default_params + extra_params - default_env = {'CLEAN_DELAY': '0'} + wrong_default_opts = ("--columns","--ask ", "--ask=") + if emerge_default_opts is None: + default_env = {'CLEAN_DELAY': '0'} + else: + default_env = { + 'CLEAN_DELAY': '0', + 'EMERGE_DEFAULT_OPTS': " ".join(filter( + lambda x: not any(y in x for y in wrong_default_opts), + emerge_default_opts)) + } default_env.update(os.environ) self.env = env or default_env self.cwd = cwd diff --git a/update/update.py b/update/update.py index 26c3966..9144626 100644 --- a/update/update.py +++ b/update/update.py @@ -533,6 +533,7 @@ class Update: """ Вывести информацию об обновлении """ + deo = self.clVars.Get('cl_emerge_default_opts') param, packages = self.getCacheOnWorld(param, packages, check=True) param = [param, "-pv"] @@ -540,8 +541,8 @@ class Update: self.printSUCCESS(_("Installed packages are up to date")) self.set_need_update(False) return True - with EmergeParser(EmergeCommand(list(packages), - extra_params=param)) as emerge: + with EmergeParser(EmergeCommand(list(packages), emerge_default_opts=deo, + extra_params=param)) as emerge: try: emerge.run() if "@world" in packages: @@ -623,6 +624,7 @@ class Update: """ Выполнить сборку пакета """ + deo = self.clVars.Get('cl_emerge_default_opts') if not packages: packages = [param] extra_params = None @@ -631,7 +633,7 @@ class Update: if not packages: return True extra_params = [param] - with EmergeParser(EmergeCommand(list(packages), + with EmergeParser(EmergeCommand(list(packages), emerge_default_opts=deo, extra_params=extra_params)) as emerge: try: emerge.question.action = lambda x: False @@ -649,7 +651,9 @@ class Update: """ Выполнить очистку системы от лишних пакетов """ - with EmergeParser(EmergeCommand(["--depclean"])) as emerge: + deo = self.clVars.Get('cl_emerge_default_opts') + with EmergeParser(EmergeCommand(["--depclean"], + emerge_default_opts=deo)) as emerge: try: emerge.question.action = lambda x: False emerge.run()