Check if conversion code runs on Qubes

Add a way to check if the code runs (or should run) on Qubes.

Refs #451
This commit is contained in:
deeplow 2023-06-20 19:46:11 +03:00 committed by Alex Pyrgiotis
parent a0d1a68302
commit 9410da762c
No known key found for this signature in database
GPG key ID: B6C15EBA0357C9AA
2 changed files with 18 additions and 8 deletions

View file

@ -17,6 +17,14 @@ TIMEOUT_PER_MB: float = 30 # (seconds)
TIMEOUT_MIN: float = 60 # (seconds)
def running_on_qubes() -> bool:
# https://www.qubes-os.org/faq/#what-is-the-canonical-way-to-detect-qubes-vm
if os.environ.get("DZ_USE_CONTAINERS", "0") == "0":
return os.path.exists("/usr/share/qubes/marker-vm")
else:
return False
async def read_stream(
sr: asyncio.StreamReader, callback: Optional[Callable] = None
) -> bytes:
@ -126,9 +134,10 @@ class DangerzoneConverter:
pass
def update_progress(self, text: str, *, error: bool = False) -> None:
print(
json.dumps(
{"error": error, "text": text, "percentage": int(self.percentage)}
if not running_on_qubes():
print(
json.dumps(
{"error": error, "text": text, "percentage": int(self.percentage)}
)
)
)
sys.stdout.flush()
sys.stdout.flush()

View file

@ -12,7 +12,7 @@ import os
import shutil
import sys
from .common import DangerzoneConverter, run_command
from .common import DangerzoneConverter, run_command, running_on_qubes
class PixelsToPDF(DangerzoneConverter):
@ -146,8 +146,9 @@ class PixelsToPDF(DangerzoneConverter):
self.update_progress("Safe PDF created")
# Move converted files into /safezone
shutil.move("/tmp/safe-output.pdf", "/safezone")
shutil.move("/tmp/safe-output-compressed.pdf", "/safezone")
if not running_on_qubes():
shutil.move("/tmp/safe-output.pdf", "/safezone")
shutil.move("/tmp/safe-output-compressed.pdf", "/safezone")
async def main() -> int: