mirror of
https://github.com/freedomofpress/dangerzone.git
synced 2025-05-07 05:51:50 +02:00
Compare commits
No commits in common. "6c8a75732e56479a435a014f113b033251b53817" and "53e36ca01b919792cfd85caa452bcd00f5072f7a" have entirely different histories.
6c8a75732e
...
53e36ca01b
4 changed files with 6 additions and 44 deletions
|
@ -11,7 +11,6 @@ from .isolation_provider.container import Container
|
||||||
from .isolation_provider.dummy import Dummy
|
from .isolation_provider.dummy import Dummy
|
||||||
from .isolation_provider.qubes import Qubes, is_qubes_native_conversion
|
from .isolation_provider.qubes import Qubes, is_qubes_native_conversion
|
||||||
from .logic import DangerzoneCore
|
from .logic import DangerzoneCore
|
||||||
from .settings import Settings
|
|
||||||
from .util import get_version, replace_control_chars
|
from .util import get_version, replace_control_chars
|
||||||
|
|
||||||
|
|
||||||
|
@ -49,11 +48,6 @@ def print_header(s: str) -> None:
|
||||||
flag_value=True,
|
flag_value=True,
|
||||||
help="Run Dangerzone in debug mode, to get logs from gVisor.",
|
help="Run Dangerzone in debug mode, to get logs from gVisor.",
|
||||||
)
|
)
|
||||||
@click.option(
|
|
||||||
"--set-container-runtime",
|
|
||||||
required=False,
|
|
||||||
help="The path to the container runtime you want to set in the settings",
|
|
||||||
)
|
|
||||||
@click.version_option(version=get_version(), message="%(version)s")
|
@click.version_option(version=get_version(), message="%(version)s")
|
||||||
@errors.handle_document_errors
|
@errors.handle_document_errors
|
||||||
def cli_main(
|
def cli_main(
|
||||||
|
@ -63,14 +57,8 @@ def cli_main(
|
||||||
archive: bool,
|
archive: bool,
|
||||||
dummy_conversion: bool,
|
dummy_conversion: bool,
|
||||||
debug: bool,
|
debug: bool,
|
||||||
set_container_runtime: Optional[str] = None,
|
|
||||||
) -> None:
|
) -> None:
|
||||||
setup_logging()
|
setup_logging()
|
||||||
display_banner()
|
|
||||||
if set_container_runtime:
|
|
||||||
settings = Settings()
|
|
||||||
settings.set("container_runtime", set_container_runtime, autosave=True)
|
|
||||||
click.echo(f"Set the settings container_runtime to {set_container_runtime}")
|
|
||||||
|
|
||||||
if getattr(sys, "dangerzone_dev", False) and dummy_conversion:
|
if getattr(sys, "dangerzone_dev", False) and dummy_conversion:
|
||||||
dangerzone = DangerzoneCore(Dummy())
|
dangerzone = DangerzoneCore(Dummy())
|
||||||
|
@ -79,6 +67,7 @@ def cli_main(
|
||||||
else:
|
else:
|
||||||
dangerzone = DangerzoneCore(Container(debug=debug))
|
dangerzone = DangerzoneCore(Container(debug=debug))
|
||||||
|
|
||||||
|
display_banner()
|
||||||
if len(filenames) == 1 and output_filename:
|
if len(filenames) == 1 and output_filename:
|
||||||
dangerzone.add_document_from_filename(filenames[0], output_filename, archive)
|
dangerzone.add_document_from_filename(filenames[0], output_filename, archive)
|
||||||
elif len(filenames) > 1 and output_filename:
|
elif len(filenames) > 1 and output_filename:
|
||||||
|
@ -331,10 +320,4 @@ def display_banner() -> None:
|
||||||
+ Style.DIM
|
+ Style.DIM
|
||||||
+ "│"
|
+ "│"
|
||||||
)
|
)
|
||||||
print(
|
print(Back.BLACK + Fore.YELLOW + Style.DIM + "╰──────────────────────────╯")
|
||||||
Back.BLACK
|
|
||||||
+ Fore.YELLOW
|
|
||||||
+ Style.DIM
|
|
||||||
+ "╰──────────────────────────╯"
|
|
||||||
+ Style.RESET_ALL
|
|
||||||
)
|
|
||||||
|
|
|
@ -21,8 +21,6 @@ class Runtime(object):
|
||||||
|
|
||||||
if settings.custom_runtime_specified():
|
if settings.custom_runtime_specified():
|
||||||
self.path = Path(settings.get("container_runtime"))
|
self.path = Path(settings.get("container_runtime"))
|
||||||
if not self.path.exists():
|
|
||||||
raise errors.UnsupportedContainerRuntime(self.path)
|
|
||||||
self.name = self.path.stem
|
self.name = self.path.stem
|
||||||
else:
|
else:
|
||||||
self.name = self.get_default_runtime_name()
|
self.name = self.get_default_runtime_name()
|
||||||
|
@ -31,9 +29,6 @@ class Runtime(object):
|
||||||
raise errors.NoContainerTechException(self.name)
|
raise errors.NoContainerTechException(self.name)
|
||||||
self.path = Path(binary_path)
|
self.path = Path(binary_path)
|
||||||
|
|
||||||
if self.name not in ("podman", "docker"):
|
|
||||||
raise errors.UnsupportedContainerRuntime(self.name)
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_default_runtime_name() -> str:
|
def get_default_runtime_name() -> str:
|
||||||
return "podman" if platform.system() == "Linux" else "docker"
|
return "podman" if platform.system() == "Linux" else "docker"
|
||||||
|
|
|
@ -140,7 +140,3 @@ class NotAvailableContainerTechException(Exception):
|
||||||
self.error = error
|
self.error = error
|
||||||
self.container_tech = container_tech
|
self.container_tech = container_tech
|
||||||
super().__init__(f"{container_tech} is not available")
|
super().__init__(f"{container_tech} is not available")
|
||||||
|
|
||||||
|
|
||||||
class UnsupportedContainerRuntime(Exception):
|
|
||||||
pass
|
|
||||||
|
|
|
@ -1,21 +1,20 @@
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import pytest
|
|
||||||
from pytest_mock import MockerFixture
|
from pytest_mock import MockerFixture
|
||||||
|
|
||||||
from dangerzone import errors
|
|
||||||
from dangerzone.container_utils import Runtime
|
from dangerzone.container_utils import Runtime
|
||||||
from dangerzone.settings import Settings
|
from dangerzone.settings import Settings
|
||||||
|
|
||||||
|
|
||||||
def test_get_runtime_name_from_settings(mocker: MockerFixture, tmp_path: Path) -> None:
|
def test_get_runtime_name_from_settings(mocker: MockerFixture, tmp_path: Path) -> None:
|
||||||
mocker.patch("dangerzone.settings.get_config_dir", return_value=tmp_path)
|
mocker.patch("dangerzone.settings.get_config_dir", return_value=tmp_path)
|
||||||
mocker.patch("dangerzone.container_utils.Path.exists", return_value=True)
|
|
||||||
|
|
||||||
settings = Settings()
|
settings = Settings()
|
||||||
settings.set("container_runtime", "/opt/somewhere/docker", autosave=True)
|
settings.set(
|
||||||
|
"container_runtime", "/opt/somewhere/new-kid-on-the-block", autosave=True
|
||||||
|
)
|
||||||
|
|
||||||
assert Runtime().name == "docker"
|
assert Runtime().name == "new-kid-on-the-block"
|
||||||
|
|
||||||
|
|
||||||
def test_get_runtime_name_linux(mocker: MockerFixture, tmp_path: Path) -> None:
|
def test_get_runtime_name_linux(mocker: MockerFixture, tmp_path: Path) -> None:
|
||||||
|
@ -47,14 +46,3 @@ def test_get_runtime_name_non_linux(mocker: MockerFixture, tmp_path: Path) -> No
|
||||||
assert runtime.name == "docker"
|
assert runtime.name == "docker"
|
||||||
assert runtime.path == Path("/usr/bin/docker")
|
assert runtime.path == Path("/usr/bin/docker")
|
||||||
assert Runtime().name == "docker"
|
assert Runtime().name == "docker"
|
||||||
|
|
||||||
|
|
||||||
def test_get_unsupported_runtime_name(mocker: MockerFixture, tmp_path: Path) -> None:
|
|
||||||
mocker.patch("dangerzone.settings.get_config_dir", return_value=tmp_path)
|
|
||||||
settings = Settings()
|
|
||||||
settings.set(
|
|
||||||
"container_runtime", "/opt/somewhere/new-kid-on-the-block", autosave=True
|
|
||||||
)
|
|
||||||
|
|
||||||
with pytest.raises(errors.UnsupportedContainerRuntime):
|
|
||||||
assert Runtime().name == "new-kid-on-the-block"
|
|
||||||
|
|
Loading…
Reference in a new issue