Добавлена фильтрация default_opts

master3.3
Mike Khiretskiy 10 years ago
parent 3fbc5c7ff2
commit d8cbd1c6e8

@ -102,12 +102,21 @@ class EmergeCommand(CommandExecutor):
cmd = getProgPath("/usr/bin/emerge") cmd = getProgPath("/usr/bin/emerge")
def __init__(self, packages, extra_params=None, env=None, cwd=None, def __init__(self, packages, extra_params=None, env=None, cwd=None,
logfile=None): logfile=None, emerge_default_opts=None):
extra_params = extra_params or [] extra_params = extra_params or []
self.child = None self.child = None
self.packages = packages self.packages = packages
self.params = self.default_params + extra_params 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) default_env.update(os.environ)
self.env = env or default_env self.env = env or default_env
self.cwd = cwd self.cwd = cwd

@ -533,6 +533,7 @@ class Update:
""" """
Вывести информацию об обновлении Вывести информацию об обновлении
""" """
deo = self.clVars.Get('cl_emerge_default_opts')
param, packages = self.getCacheOnWorld(param, packages, check=True) param, packages = self.getCacheOnWorld(param, packages, check=True)
param = [param, "-pv"] param = [param, "-pv"]
@ -540,8 +541,8 @@ class Update:
self.printSUCCESS(_("Installed packages are up to date")) self.printSUCCESS(_("Installed packages are up to date"))
self.set_need_update(False) self.set_need_update(False)
return True return True
with EmergeParser(EmergeCommand(list(packages), with EmergeParser(EmergeCommand(list(packages), emerge_default_opts=deo,
extra_params=param)) as emerge: extra_params=param)) as emerge:
try: try:
emerge.run() emerge.run()
if "@world" in packages: if "@world" in packages:
@ -623,6 +624,7 @@ class Update:
""" """
Выполнить сборку пакета Выполнить сборку пакета
""" """
deo = self.clVars.Get('cl_emerge_default_opts')
if not packages: if not packages:
packages = [param] packages = [param]
extra_params = None extra_params = None
@ -631,7 +633,7 @@ class Update:
if not packages: if not packages:
return True return True
extra_params = [param] extra_params = [param]
with EmergeParser(EmergeCommand(list(packages), with EmergeParser(EmergeCommand(list(packages), emerge_default_opts=deo,
extra_params=extra_params)) as emerge: extra_params=extra_params)) as emerge:
try: try:
emerge.question.action = lambda x: False 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: try:
emerge.question.action = lambda x: False emerge.question.action = lambda x: False
emerge.run() emerge.run()

Loading…
Cancel
Save