fix UI client
This commit is contained in:
@@ -5,6 +5,22 @@ from pathlib import Path
|
||||
from app.core.command_runner import CommandRunner
|
||||
|
||||
|
||||
APT_DPKG_OPTIONS = [
|
||||
"-o",
|
||||
"Dpkg::Use-Pty=0",
|
||||
"-o",
|
||||
"Dpkg::Options::=--force-confdef",
|
||||
"-o",
|
||||
"Dpkg::Options::=--force-confold",
|
||||
]
|
||||
|
||||
APT_NONINTERACTIVE_ENV = {
|
||||
"DEBIAN_FRONTEND": "noninteractive",
|
||||
"DEBCONF_NONINTERACTIVE_SEEN": "true",
|
||||
"APT_LISTCHANGES_FRONTEND": "none",
|
||||
}
|
||||
|
||||
|
||||
def _parse_deb_control_output(output: str) -> dict[str, str]:
|
||||
metadata: dict[str, str] = {}
|
||||
|
||||
@@ -49,11 +65,23 @@ class DebInstaller:
|
||||
return metadata
|
||||
|
||||
def install_deb(self, file_path: Path) -> None:
|
||||
self.command_runner.run(["apt", "install", "-y", str(file_path)])
|
||||
self.command_runner.run(
|
||||
[
|
||||
"apt-get",
|
||||
*APT_DPKG_OPTIONS,
|
||||
"install",
|
||||
"--yes",
|
||||
str(file_path),
|
||||
],
|
||||
env=APT_NONINTERACTIVE_ENV,
|
||||
)
|
||||
|
||||
def remove_package(self, package_name: str, purge: bool = False) -> None:
|
||||
action = "purge" if purge else "remove"
|
||||
self.command_runner.run(["apt", action, "-y", package_name])
|
||||
self.command_runner.run(
|
||||
["apt-get", *APT_DPKG_OPTIONS, action, "--yes", package_name],
|
||||
env=APT_NONINTERACTIVE_ENV,
|
||||
)
|
||||
|
||||
def get_package_version(self, package_name: str) -> str | None:
|
||||
result = self.command_runner.run(["dpkg-query", "-W", "-f=${Version}", package_name])
|
||||
|
||||
Reference in New Issue
Block a user