lib.distros.*.Distro: Align PM prototypes

Make all backend package manager prototypes have the same arguments:

	yum(self, args: list[str], verbose: bool=True, sudo: bool=True)

This also implies having them behave equally verbose, unless
otherwise specified by the caller. This changes the default for
Debian.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2026-03-16 11:07:41 +01:00
commit 824de4eca4
3 changed files with 9 additions and 6 deletions

View file

@ -12,12 +12,14 @@ if TYPE_CHECKING:
class Distro(Base):
async def pacman(self, args: list[str]) -> Result:
async def pacman(self, args: list[str], verbose: bool=True, sudo: bool=True) -> Result:
cmd = ['/usr/bin/pacman']
if not self.interactive:
cmd.extend(['--noconfirm'])
cmd.extend(args)
return await self.sudo(cmd)
if sudo:
return await self.sudo(cmd, verbose=verbose)
return await self.run(cmd, verbose=verbose)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)

View file

@ -16,14 +16,16 @@ if TYPE_CHECKING:
class Distro(Base):
async def apt_get(self, args: list[str]):
async def apt_get(self, args: list[str], verbose: bool=True, sudo: bool=True):
cmd = ['/usr/bin/apt-get']
mod_env = None
if not self.interactive:
cmd.extend(['--yes', '--quiet'])
mod_env = { 'DEBIAN_FRONTEND': 'noninteractive' }
cmd.extend(args)
return await self.sudo(cmd, mod_env=mod_env)
if sudo:
return await self.sudo(cmd, verbose=verbose, mod_env=mod_env)
return await self.run(cmd, verbose=verbose)
async def dpkg(self, *args, **kwargs):
return await run_dpkg(*args, ec=self.ctx, **kwargs)

View file

@ -19,8 +19,7 @@ class Distro(Base):
cmd.extend(['--non-interactive', '--gpg-auto-import-keys', '--no-gpg-checks'])
cmd.extend(args)
if sudo:
# Run sudo --login in case /etc/profile modifies ZYPP_CONF
return await self.sudo(cmd, opts=['--login'], verbose=verbose)
return await self.sudo(cmd, verbose=verbose)
return await self.run(cmd, verbose=verbose)
async def rpm(self, *args, **kwargs) -> Result: