[arch] fix -> some environment variables are not available during the common operations (install, upgrade, ...)

This commit is contained in:
Vinicius Moreira
2020-08-19 14:59:14 -03:00
parent e20bfe461b
commit eb1a1520a4
5 changed files with 28 additions and 22 deletions

View File

@@ -932,8 +932,10 @@ class ArchManager(SoftwareManager):
pkgs_to_remove=len(to_remove))
output_handler.start()
try:
success = handler.handle(pacman.remove_several(pkgnames=to_remove, root_password=root_password, skip_checks=True),
output_handler=output_handler.handle)
success, _ = handler.handle_simple(pacman.remove_several(pkgnames=to_remove,
root_password=root_password,
skip_checks=True),
output_handler=output_handler.handle)
if not success:
self.logger.error("Could not remove packages: {}".format(', '.join(to_remove)))

View File

@@ -28,7 +28,7 @@ def check(pkgdir: str, optimize: bool, missing_deps: bool, handler: ProcessHandl
else:
handler.watcher.print('Custom optimized makepkg.conf ( {} ) not found'.format(CUSTOM_MAKEPKG_FILE))
success, output = handler.handle_simple(SimpleProcess(cmd, cwd=pkgdir))
success, output = handler.handle_simple(SimpleProcess(cmd, cwd=pkgdir, shell=True))
if missing_deps and 'Missing dependencies' in output:
res['missing_deps'] = RE_DEPS_PATTERN.findall(output)
@@ -54,7 +54,7 @@ def make(pkgdir: str, optimize: bool, handler: ProcessHandler) -> Tuple[bool, st
else:
handler.watcher.print('Custom optimized makepkg.conf ( {} ) not found'.format(CUSTOM_MAKEPKG_FILE))
return handler.handle_simple(SimpleProcess(cmd, cwd=pkgdir))
return handler.handle_simple(SimpleProcess(cmd, cwd=pkgdir, shell=True))
def update_srcinfo(project_dir: str) -> bool:

View File

@@ -149,7 +149,8 @@ def install_as_process(pkgpaths: Iterable[str], root_password: str, file: bool,
return SimpleProcess(cmd=cmd,
root_password=root_password,
cwd=pkgdir,
error_phrases={"error: failed to prepare transaction", 'error: failed to commit transaction', 'error: target not found'})
error_phrases={"error: failed to prepare transaction", 'error: failed to commit transaction', 'error: target not found'},
shell=True)
def list_desktop_entries(pkgnames: Set[str]) -> List[str]:
@@ -731,25 +732,24 @@ def upgrade_several(pkgnames: Iterable[str], root_password: str, overwrite_confl
return SimpleProcess(cmd=cmd,
root_password=root_password,
error_phrases={'error: failed to prepare transaction', 'error: failed to commit transaction', 'error: target not found'})
error_phrases={'error: failed to prepare transaction', 'error: failed to commit transaction', 'error: target not found'},
shell=True)
def download(root_password: str, *pkgnames: str) -> SimpleProcess:
return SimpleProcess(cmd=['pacman', '-Swdd', *pkgnames, '--noconfirm'],
root_password=root_password,
error_phrases={'error: failed to prepare transaction', 'error: failed to commit transaction', 'error: target not found'})
error_phrases={'error: failed to prepare transaction', 'error: failed to commit transaction', 'error: target not found'},
shell=True)
def remove_several(pkgnames: Iterable[str], root_password: str, skip_checks: bool = False) -> SystemProcess:
def remove_several(pkgnames: Iterable[str], root_password: str, skip_checks: bool = False) -> SimpleProcess:
cmd = ['pacman', '-R', *pkgnames, '--noconfirm']
if skip_checks:
cmd.append('-dd')
if root_password:
return SystemProcess(new_root_subprocess(cmd, root_password), wrong_error_phrase='warning:')
else:
return SystemProcess(new_subprocess(cmd), wrong_error_phrase='warning:')
return SimpleProcess(cmd=cmd, root_password=root_password, wrong_error_phrases={'warning:'}, shell=True)
def map_optional_deps(names: Iterable[str], remote: bool, not_installed: bool = False) -> Dict[str, Dict[str, str]]: